* Fixed: Merge User and Room objects when ID and login are both known at once.
* Fixed: Spacing and sorting of metadata beneath the player. (Closes %520)
* Fixed: Update the settings menu when new settings are added while the menu is open. (Closes#523)
* Fixed: Do not maximize or minimize the settings window when double-clicking in the search box. (Closes#521)
* Added "Chat > Behavior > Deleted Message Style" setting to customize how deleted messages appear when set to always be visible.
* Added "Chat > Filtering > Filter your own messages." setting to control whether or not your own chat messages are filtered. Defaults to disabled.
* Fixed: Channel Hosting, via better detection of new vs old channel component style.
* Fixed: Update Fine to deal with changes to how the React Root is stored in the DOM.
Behind the Scenes
* Working on the UI for Translation Editing
* Refactor some of the main menu dialog logic into a more generic Dialog class
* Added: Initial support for chat on Clips.
* Fixed: Do not attempt to apply the dark theme to the Twitch Prime landing page.
* Fixed: Remove debug logging from Chat on Videos.
* Added: Notify users when a new build of FrankerFaceZ is available.
* Fixed: The option to disable channel hosting. (Revert to previous channel hosting data scheme from 21 days ago.)
* Added: Whisper Support
* Fixed: UI missing hover state for a few elements added by FrankerFaceZ.
* Fixed: Handle missing badge definition when rendering FFZ badges.
* Fixed: Update static chat message type mappings.
* Fixed: Error in metadata when unable to get the proper player.
* Fixed: Incorrectly applying dark theme to products page.
A bit more work on getting enhanced viewer cards ready.
Fix issues with destroying rooms and users.
Fix the control center not being available on certain pages.
Fix the host menu appearing when you aren't logged in.
Clean up some old CSS.
Modules using vue may need to add the vue module to their load_requires now, as demonstrated in main_menu. If importing .vue files individually, this likely isn't necessary.
* Configure the project to allow the use of JSX in .jsx files.
* Add linting for JSX.
* Rewrite most existing code that uses `createElement` to use JSX syntax.
* Stop importing `createElement as e`. That's what the minifier is for. And we don't have to write it manually so much now because of JSX syntax.
- In exclusive mode, the settings menu isn't minimizable or closable
- It automatically opens in said mode when it finds `?ffz-settings` in the URL
- When in pop-out chat, the FrankerFaceZ Control Center link will open a new window with exclusive settings mode.