* Added: Option to display rich embeds in chat for all links and not just those to Twitch Clips and Videos. (Closes#554)
* Added: Option to only display rich embeds for links posted by users of a certain level. (Broadcaster, VIP, etc.)
* Fixed: Implement logic for determining if embedded chat is dark or not, since embedded chat is a special snowflake. (Closes#557)
* Fixed: Emote Alignment setting broke due to DOM changes in last update. (Closes#555)
* Fixed: Clicking Stream Latency metadata not toggling the visibility of the player's playback statistics.
* Fixed: The Turbo landing page being inappropriately darkened. (Twitch forgot to add the "base text color" class to anything so text becomes invisible against the background.)
* Fixed: More emote menu fixes. Check that emote data from Twitch doesn't contain null values, because apparently it can.
* Fixed: Chat width in portrait mode using Microsoft Edge.
* Fixed: `no_invert` not applying to badges correctly. (Closes#547)
* Added: Portrait Mode! Put chat beneath the player when your window is taller than it is wide to make the best use of space for both the player and chat.
* Fixed: Better route matching for when we're actually on the new channel page.
* Fixed: Unable to effectively collapse chat with a custom width on the new layout.
* 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: 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.
This adds a new module called switchboard that abuses the root React Router instance to forcibly load a chunk, letting us grab `require()` quickly rather than waiting potentially forever for another chunk to be loaded due to user action, etc.
Add an option to hide the mouse over the player. This doesn't work well in Chrome. Oh well, we tried.
Add an option to not automatically join raids for that comfy falling asleep experience.
Fix in-line actions not rendering when they should.
Fix detokenizeMessage for changes to Twitch's message format.
Don't try to preview the `create` clip URL.
Start using functional components where possible for performance.
Stop logging GraphQL errors to save our Sentry quota.
Begin implementing chat rendering on top of Vue. For now, we've got functional components for every type of chat token. We've got a lot of work ahead of us. This will eventually be used for mod card history, chat panes, and maybe even pinned rooms.
Add an event to clean orphan tooltips. Useful for when we click something we know will change DOM elements with active tooltips, like a Close button for example.
* Add extensible actions system.
* Add extensive UI for configuring the actions system.
* Add setting to disable channel hosting.
* Fix the stupid Rooms thing popping up every time you open a channel.
* Fix how we grab chat types from React.
* Refactor how we handle incoming chat messages.
* Add a hook for outgoing chat messages.
* Fix emoji appearing squished with baseline emote alignment.
* Display arrows on balloons.
* Fix an issue generating emoji URLs.
* Do not use the default values for settings with merge strategies if profiles have those settings, just empty.
* Display a message in the chat settings menu if we tried opening FFZ's settings and failed.
* Wait a bit for webpack's loader if it's not immediately there for some reason.
* Probably other stuff.
* Not mod cards. Yet.
* 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.
* Directory Support
- Channel avatar next to / on-top the stream card
- Stream uptime on stream card
- Host grouping with a nice UI
- Ability to block / hide games and / or their thumbnails
Missing / Not working as of right now:
- Channel avatar / uptime not showing in Game or Community directories
Fix not being able to open host menu on the stream name
Fix chat lines where you've been mentioned.
"Following" button is now hoverable
Not configurable though.
Merge remote-tracking branch 'upstream/master'
Fix for Apollo's InlineFragments
Basic game directory index support
(Outsource timeToString to some utility class!!!)
Empty merge
Fix Github's "You're behind the master branch!" annoyance
More work on Directory stuff
Community pages are now supported
Several other small things
* Proper router usage
* Several fixes
Also removing `package-lock.json` because for whatever reason that was in?
* Early return if the container or card are null