When the message has no `from` on it, the new render crashes when it
tries to get the colors to render the message, and because of that, we
shouldn't try to run ffz's render
closes#904
* Fixed: Emotes not appearing in Chat on Videos.
* Fixed: Extra, unnecessary `Pause Chat` section appearing in the Twitch chat settings menu.
* Fixed: Hide the number of unread whispers when hiding the whispers button.
* Fixed: The alternative live viewer display sometimes incorrectly displaying zero when loading the page.
* Fixed: Precision issue when displaying localized numbers in some cases.
* Fixed: Bug with badge tool-tips in some situations when FFZ has only partially loaded when a chat line is displayed.
* Fixed: Certain page elements not having their fonts overwritten by the Theme font.
* Fixed: Certain page elements, including tool-tips, being incorrectly styled by the Theme Accent color. Fixes tool-tip readability when only an Accent color is set without a background color.
* Changed: Properly support channel-specific experiments with the Twitch Experiments UI, detecting the correct assignments for the current channel and displaying a more useful type.
* Changed: When logging experiments, properly handle channel-specific experiments. Sort experiments by rarity. Do not log experiments at 100% roll-out.
* Changed: Remove the `Override Channel Points Rendering` experiment. Now enabled for all users.
* Fixed: Update the theme generation rules when using accent colors.
* Fixed: Swap Sidebars and Hide Side Navigation when experiencing the experiment that expands the side navigation bar on hover.
* API Changed: Allow `overlay` rich tokens to have a background color.
* Added: Setting to filter out chat messages by type. Can be used to remove hosting and raid notices, among other things.
* Added: Support for clicking badges. It's a native feature that's been missing for ages.
* Changed: Make headers slightly bigger in settings so that they stand out more.
* Fixed: Certain settings inheriting default values when they should not.
* Fixed: Bug in the FFZ Emote Menu when garbage subscription data is returned from Twitch.
* Fixed: Do not suppress error messages in the console when an error happens in an event handler.
This release uses an entirely new emoji data source behind the scenes, and there may be bugs with emoji. Different names for certain emoji are also likely. Please report any issues.
* Added: Support for Blob and OpenMoji emoji sets.
* Changed: Update emoji to support emoji 13.
* Changed: Allow searching for emoji by any of their short codes in the emote menu.
* Removed: Support for the EmojiOne emoji set.
* Fixed: Hover styles for certain elements.
* Fixed: Sort emoji categories.
* Fixed: Typo in the description of a setting.
* Fixed: Do not include the same emoji multiple times in tab completion.
* Fixed: Issue viewing chat messages with replies enabled when not logged in. (Closes#889)
* Fixed: Twitch Style replies for highlighted messages, resubscription messages, etc.
* Fixed: Badge tool-tips not appearing correctly in Firefox.
* Changed: Set the default chat reply style to Twitch's own, now that messages can be selected.
* Fixed: Update the chat replies support for Twitch's default style.
* Fixed: Badge tool-tips not working for certain chat messages with additional formatting. (Closes#887)
* Fixed: FFZ hiding the `Watch Full Video` button on clips pages if the option to hide the native live viewer count is enabled. (Closes#883)
* API Added: `threads` icon.
* Added: Support for Twitch's native chat replies style.
* Added: Option to display in-line actions on hover.
* Added: Option for changing the current replies style, including a choice to disable replies.
* Fixed: Hover styling for elements including rich chat embeds due to a removed CSS class.
* Changed: Position the default `Reply to Message` in-line action after mod actions.
* Fixed: The `Reply to Message` action not working as a User Context action.
* Fixed: Twitch emotes appearing incorrectly within reply messages.
* API Changed: `array_merge` settings now inherit their `default` values if the lowest profile has an inheritance point.
* Added: Support for Twitch's replies and threads system. The experiment is currently disabled, but if it returns we want to support it.
* Added: Option to automatically skip channel trailers.
* Fixed: Incorrect appearance of aspect-ratio controlled elements, due to Twitch removing their aspect ratio CSS.
* Fixed: Incorrect color applied to text buttons with a custom accent color set.
* API Added: `chat:get-tab-commands` event for adding custom chat commands to tab-completion.
* API Added: `reply` icon.
* Fixed: Clicking an emote in chat not opening an emote information card.
* API Added: Link information can now have a `refresh` value, which will have the client automatically refresh link data after at a certain time.
* Fixed: Remove console debugging.
* API Added: Link embeds and tooltips now support markdown.
* API Fixed: Bug when setting raw HTML while using `createElement`.
* Changed: Better formatting for link embeds with no image.
* Fixed: Date formatting issue in the emote menu. (What do you mean your sub didn't expire 51 years ago?)
* Changed: Tweak the brightness for custom accent colors to better match Twitch's defaults.
* Fixed: Clean up more hard-coded colors from Twitch's CSS.
* Added: Accent Color customization, in `Appearance > Theme`.
* Added: Previews for custom date/time formats in `Appearance > Localization`.
* Changed: Assume Twitch clip and video thumbnails are Safe-For-Work.
* Fixed: Changelog dates not using i18n formatting. (Closes#873)
* Fixed: Icon picker string not localizing properly.
* Removed `Gray (no Purple)` legacy CSS. It's been breaking more and more over time, and it's not necessary at all with the new Accent Color setting.
This release implements a massive change to how link tool-tips and embeds work. They might act up a bit while we get the new back-end installed and tweaked.
* Added: Options to use custom formats for dates and times, under `Appearance > Localization`.
* Added: Options to change the colors of tool-tips.
* Changed: Completely rewrite how link information is formatted together with a complete rewrite of the link information service.
* Changed: The FFZ Control Center now remembers you previously open settings if you reload the page.
* Fixed: Update chat lines when i18n data loads.
* Fixed: i18n not correctly formatting certain numbers.
* Fixed: Theater mode automatically enabling on user home pages. (Closes#866)
* Fixed: Theater metadata overlapping chat with Swap Sidebars enabled. (Closes#835)
* API Added: New icons: `location`, `link`, and `volume-off`
* API Fixed: `createElement` not properly handling `<video>` related attributes.
* Added: Display rich tool-tips for channel panels.
* Fixed: Hide Unfollow button in theater mode with the appropriate setting. (Closes#860)
* Fixed: Automatically open Theater Mode not working when the channel is window is not visible. (Closes#861)
* Fixed: Game titles not appearing in clip embeds.
* Fixed: Featured Follow metadata failing when trying to open the menu.
* Debug Added: Setting to choose the link resolver.
* Debug Added: Test UI for working on link resolvers.
* Changed: Show the verified badge on rich chat embeds for Twitch partner channels.
* API Added: More flexible support for tokens when building chat embeds.
* API Added: Experiment for using the API to look-up links, rather than the socket cluster.
* Changed: Update the styling for rich chat embeds to match modern vanilla Twitch.
* Fixed: Do not display FFZ's Alternative Viewer Count if the stream is not live.
* Fixed: Automatically opening the chat when accessing a channel. (Now using route state instead of page elements.)
* Fixed: Dual channel points redemption messages when FFZ is rendering them.
* Fixed: Stopping the host video player when accessing a user's home page.
* Removed: The old, unfinished logviewer module. Logviewer is a dead project.
* API Changed: Add support for rich formatting in rich chat embeds.
* API Changed: `fine-router` can now check state when determining the current route.
* Added: Setting to apply username colors to chat mentions. (Closes#753)
* Changed: Stream links now use a darker color.
* Changed: Make the icon for FFZ's Alternative Viewer Count slightly larger.
* Fixed: Crazy flickering when disabling hosting.
* Fixed: Stream links showing up on the home page and not just the live page.
* Fixed: Better detection for channels where the Host button should appear.
* Fixed: FFZ's Alternative Viewer Count metadata not updating correctly when FS Chat is in use.
* Added: Download link for clips. Requires the current user to be an editor of the channel to appear.
* Added: Option to hide the Unfollow button from channels to prevent accidentally unfollowing.
* Added: Option to add Schedule, Videos, and Clips links to live channel pages.
* Fixed: Metadata not rendering on video and clips pages.
* Removed: Outdated channel appearance settings that no longer have any effect.
* Changed: Metadata now uses the global FFZ tool-tip handler when rendering tool-tips.
* Fixed: Metadata pop-ups not appearing when an element is open fullscreen.
* API Added: Callback for changing popper options before opening a tool-tip.
* API Added: Timing for module loading. WIP.
* Changed: Implemented FFZ rendering of Channel Points redemption notices with no associated messages. (Experiment, 50% roll-out)
* Fixed: Channel not properly detecting the current channel's branding color.
* Fixed: Unable to delete the profile 0 (Default Profile)
* Fixed: Twitch prevented viewer cards from appearing when moved out of the chat area.
* Fixed: `addons` should not block loading while its data loads.
* Fixed: Issue accessing `i18n` before `settings` has fully loaded.
* Fixed: `main_menu` tries to use `i18n` before `i18n` is ready.
* Fixed: Main menu throws error if profiles are changed while main menu is open.
* Fixed: `site` should not block loading waiting for `settings`
* Maintenance: Updated dependencies.
* API Added: Initial support for using IndexedDB to store settings rather than localStorage
* API Added: Messages now have a `highlights` object if they've matched filters, describing which filters they matched.
* Fixed: Disabling auto-play of channels on the front page not working. (Closes#848)
* Fixed: Automatic theater mode not working correctly when navigating between pages on Twitch. (Closes#846)
* Fixed: The Channel Title settings profile not working.
* Fixed: Remove an unnecessary import that VS Code *helpfully* forced into the channel module last commit.
* Changed: Only load the `safe-regex` module on demand, it's kind of hefty.
* Added: Setting to disable Channel Hosting.
* Added: Setting to hide streams tagged as Promoted from the directory.
* Fixed: Tool-tips not appearing when an element is open in fullscreen.
* Fixed: Bug when destroying a tool-tip instance.
* Fixed: Directory cards not updating with FFZ features on the front page.
* API Added: `Subpump` module for manipulating Twitch PubSub events.
* API Changed: Add-Ons can now define custom settings profile filters.
* Fixed: Not automatically selecting Norwegian when Twitch's native language is set to Norwegian.
* Fixed: Not supporting the channels in your language sections of the directory.
* Added: Option to only hide side navigation when the page is in portrait mode.
* Added: Option to reveal hidden thumbnails after a short delay.
* Changed: Hidden thumbnails are now blurred by default, rather than replaced with a generic live thumbnail.
* Fixed: Directory features.
* Fixed: Position of theater metadata when in portrait mode.
* Changed: Start fetching FFZ badges based on user ID rather than user login, for both data savings and resilience against name changes.
* Changed: Implement a hot path for the Supporter badge (which is now applied to over 20,000 users) to reduce resource usage, notably RAM.
* API Changed: Update to a newer method of getting an APIv2 authentication token that doesn't require a socket server connection.
* Added: Settings for replacing the native Twitch viewer count with a custom display that doesn't animate when changing. (Closes#841)
* Fixed: Replace rendering for the Chat Paused footer so that we can render the correct text and disable mouse interaction when appropriate.
* Fixed: Hiding Recommended Channels causing the Online Friends section of the side navigation bar to disappear. (Closes#482)
* Added: Chat Action for editing a user's displayed name and color. Only applies to chat.
* Changed: Re-enable the setting for hiding offline channels from the side-bar.
* Changed: Updated dependencies.
* Fixed: Issue with multiple copies of FFZ emotes appearing in tab-completion.
* Fixed: Issue with tab-completion crashing sometimes in mod view. (Closes#839)
* Fixed: Support for swapping sidebars with the latest Twitch changes.
* Fixed: Hiding Recommended Channels from the sidebar. (Closes#840)
* Removed: Setting for hiding Recommended Friends from the sidebar, since that section no longer exists.
* Added: Setting to hide the 'Open Mod View' button from chat.
* Fixed: Theater metadata appearing off-screen when navigating from a channel's landing page.
* Fixed: Whispers not appearing at all when the option to not display whispers in theater mode is enabled.
* Fixed: Reset Player causing the playback position of non-live content to reset to zero.
* Added: Setting to automatically open chat when navigating to an offline channel.
* Added: Support for multi-month gift sub messages.
* Fixed: The FFZ Control Center, when maximized, disappearing beneath chat on channel pages. (Closes#833)
* Fixed: Metadata appearing in theater mode when hovering over the player.
* Fixed: Automatic theater mode enabling theater mode when navigating back to a channel's landing page.
* Added: Option to open the emote menu with Ctrl+E, similar to how Discord's works.
* Added: Warning to the Debugging > Experiments list that they are not intended for end-users.
* Changed: Rewrote tab-completion of emotes to fully respect hidden emotes from the emote menu and to cache more useful data.
* Changed: The Experiments list now hides inactive experiments by default.
* Fixed: Updated the Host button's menu to restore functionality after Twitch removed the old API.
* Fixed: Some avatar images remaining rounded despite the square avatars setting.
* Added: Option to hide Twitch's native stream uptime. Enabled by default when using FFZ's own stream uptime.
* Fixed: Implement stream metadata for the new Twitch layout.
* Fixed: Display the subscription tier in badge tool-tips for Tier 2 and Tier 3 subscriber badges.
This release involves significant changes under the hood. Due to Twitch's heavy use of functional React components and effects in recent updates to their site, we need to start listening for DOM nodes rather than components in many cases. To that end, I've implemented the Elemental module to grab elements using MutationObservers. I didn't want to, but this is where we're at. In a future release I'll be using Elemental to add support back to the directory for certain features.
* Added: Emote Visibility Control for Emote Menu. You can now hide emotes you don't want from your emote menu. You still have them, and they'll still appear in chat if someone else uses them, but it helps keep the clutter down in your menu. (Closes#811)
* Added: Setting to toggle mute for the player when middle-clicking it. (Closes#812)
* Added: Setting to toggle the bold style applied to chat mentions. (Closes#816)
* Fixed: No background color being applied to Highlight My Message chat messages when using the new Twitch layout. Now, the default Twitch purple will be used when FFZ hasn't yet extracted the color for the current channel. Extracting the channel color is still broken at this time. (Closes#821)
* Fixed: The player volume resetting to 100% when changing channels. (Closes#820)
* Fixed: Chat appearing incorrectly when a custom width smaller than 340 pixels is set. (Closes#819)
**Note**: This update does not fix all issues with features not working on Twitch's new channel page layout. Due to changes Twitch has been making to their coding practices, it is significantly harder to support their newer pages. We are still trying to determine the best way to support things going forward.
* Added: Chat Actions can be copied as JSON and imported from JSON. (Closes#782)
* Fixed: The player stuttering when attempting to play a clip when the Audio Compressor is set to be enabled by default.
* Fixed: Custom chat widths, swapping sidebars, and portrait mode not working correctly with the new channel page layout. (Closes#799, Affects #794)
* Fixed: Square Avatars not working correctly on the new channel page layout.
* Fixed: Searching settings would not properly search for items in Experiments.
* Fixed: Emotes ending in punctuation (specifically: `.`, `,`, and `!`) were not being displayed correctly.
* Fixed: The order of actions reversing after an inheritance point. (Closes#791)
* Changed: Rename `Chat > Bits and Cheering > Display Top Cheerers` to `Chat > Appearance > Display Leaderboard` to bring it in line with the current state of the feature.
* Removed: Option to hide offline channels from sidebar. This is no longer trivial to implement due to Twitch changes. (Closes#801)
* Fixed: The chat input field resizing when a different font size has been set. This is a Twitch bug, but I'm tired of users reporting it so FFZ will temporarily fix it until Twitch patches it themselves.
* Fixed: Highlighting messages when viewer cards are not open no longer working. Note: They still don't work in the Mod View, which is coded in a way that makes it harder to work with.
* Fixed: Appearance of the tool-tip for the FFZ Control Center button.
* Fixed: Player volume not saving correctly when using the mouse wheel to adjust volume, causing it to suddenly return to incorrect values in certain cases.
* Fixed: The Picture-in-Picture and Reset Player buttons appearing in the wrong location when using the Mod View.
* Changed: Updated strings for several settings to be less confusing, and added a disclaimer to Directory settings that they are currently broken due to changes Twitch made to how the directory functions.
* Fixed: Only show unlocked bits emotes from the current channel on the Channel page of the FFZ Emote Menu.
* Fixed: Sort locked bits emotes in the FFZ Emote Menu by the unlock value of the bits emotes. Note: This only works for locked bits emotes. Unlocked bits emotes do not have the necessary data to sort them correctly.
* Fixed: Issue with the player volume not updating correctly when using the Reset Player feature.
* Added: Setting to hide Twitch's new `Celebrations` feature.
* Fixed: Unlocked Bits Emotes not appearing correctly in the Channel tab of the FFZ Emotes Menu.