diff --git a/src/common/styles/UsernameEffects.module.css b/src/common/styles/UsernameEffects.module.css index 25f347153..4bf23ca88 100644 --- a/src/common/styles/UsernameEffects.module.css +++ b/src/common/styles/UsernameEffects.module.css @@ -222,6 +222,20 @@ animation-name: flipIn; } +.reducedMotion .hoverTrigger:hover .wave, +.reducedMotion .hoverTrigger:hover .bounce { + animation: none; +} + +.reducedMotion .hoverTrigger:hover .flip { + visibility: visible; +} + +.reducedMotion .hoverTrigger:hover .flip::before, +.reducedMotion .hoverTrigger:hover .flip::after { + content: none; +} + @keyframes waveHop { 0%, 100% { diff --git a/src/modules/command_autocomplete/youtube/Autocomplete.jsx b/src/modules/command_autocomplete/youtube/Autocomplete.jsx index a5c7c36a5..8fc067299 100644 --- a/src/modules/command_autocomplete/youtube/Autocomplete.jsx +++ b/src/modules/command_autocomplete/youtube/Autocomplete.jsx @@ -184,13 +184,15 @@ class CommandAutocomplete { const commandAutocompleteEnabled = getProSettingValue(SettingIds.CHATBOT_COMMAND_AUTOCOMPLETE, false); + chatInputElement.removeEventListener('focus', listener, true); + listener = null; + if (!commandAutocompleteEnabled || !this.dirty) { - chatInputElement.removeEventListener('focus', listener, true); - listener = null; - } else { - listener = this.ensureCommandsLoaded.bind(this); - chatInputElement.addEventListener('focus', listener, true); + return; } + + listener = this.ensureCommandsLoaded.bind(this); + chatInputElement.addEventListener('focus', listener, true); } async fetchChannelCommands() { diff --git a/src/modules/emote_modal/store.js b/src/modules/emote_modal/store.js index 2061c85c1..069e4c882 100644 --- a/src/modules/emote_modal/store.js +++ b/src/modules/emote_modal/store.js @@ -61,7 +61,7 @@ async function loadAvailability(emoteId, userId, key) { } useEmoteModalStore.setState((state) => { - const current = state.availability[key]; + const current = state.availability[key] === UNKNOWN_AVAILABILITY ? null : state.availability[key]; // adds performed while the lookup was in flight are fresher than the fetched snapshot const merged = current == null && result === UNKNOWN_AVAILABILITY ? UNKNOWN_AVAILABILITY : {...result, ...current}; return {availability: {...state.availability, [key]: merged}}; diff --git a/src/modules/seventv/channel-emotes.js b/src/modules/seventv/channel-emotes.js index 4e6452df7..76f1ede36 100644 --- a/src/modules/seventv/channel-emotes.js +++ b/src/modules/seventv/channel-emotes.js @@ -154,7 +154,7 @@ class SevenTVChannelEmotes extends AbstractEmotes { const existingEmote = this.getEligibleEmoteById(id); if (existingEmote == null) { - return; + continue; } this.emotes.delete(existingEmote.code); @@ -175,7 +175,7 @@ class SevenTVChannelEmotes extends AbstractEmotes { const existingEmote = this.getEligibleEmoteById(id); if (existingEmote == null) { - return; + continue; } this.emotes.delete(existingEmote.code);