fix(app): size youtube embeds with the shared embed limits (#1873)
fix(app): size youtube embeds with the shared embed limits (#1873)
Inspect stored evidence paths
fluxer_app/src/features/channel/components/embeds/media/EmbedYouTube.tsx
Reading the persisted public view.
Datamining / findings
Evidence records derived from public code, builds, assets, APIs or schemas. A detection is not automatically a release, announcement or confirmed feature.
Classification overview
fix(app): size youtube embeds with the shared embed limits (#1873)
fluxer_app/src/features/channel/components/embeds/media/EmbedYouTube.tsxfeat(app): drop the compact attachments media size preference (#1872)
fluxer_api/src/api/channel/services/message/MessageValidationService.tsfluxer_app/src/features/accessibility/state/Accessibility.tsfluxer_app/src/features/channel/components/embeds/attachments/Attachment.tsxfluxer_app/src/features/channel/components/embeds/attachments/AttachmentGridItem.tsxfluxer_app/src/features/channel/components/embeds/attachments/AttachmentMosaic.tsxfluxer_app/src/features/channel/components/embeds/attachments/AttachmentSingleMedia.tsxfluxer_app/src/features/messaging/commands/ScheduledMessageCommands.tsxfluxer_app/src/features/messaging/hooks/useMessageSubmission.tsxfluxer_app/src/features/messaging/utils/MediaDimensionConfig.tsfluxer_app/src/features/messaging/utils/MessageRequestUtils.tsfluxer_app/src/features/messaging/utils/MessageSubmitUtils.tsfluxer_app/src/features/user/components/modals/tabs/ChatSettingsTab.tsxfluxer_app/src/features/user/components/modals/tabs/chat_settings_tab/ChatSettingsTabInline.tsxfluxer_app/src/features/user/components/modals/tabs/chat_settings_tab/ChatSettingsTabMediaTab.module.cssfluxer_app/src/features/user/components/modals/tabs/chat_settings_tab/ChatSettingsTabMediaTab.tsxpackages/constants/src/ChannelConstants.tspackages/schema/proto/fluxer/user/preferences/v1/accessibility.protopackages/schema/src/gen/fluxer/user/preferences/v1/accessibility_pb.tsfix(app): contain embedded media inside its box instead of overflowing (#1871)
fluxer_app/src/features/ui/utils/DimensionUtils.tsperf(app): window emoji picker rows by offset instead of observers (#1870)
fluxer_app/src/features/channel/components/EmojiPicker.module.cssfluxer_app/src/features/channel/components/EmojiPicker.tsxfluxer_app/src/features/channel/components/MobileEmojiPicker.tsxfluxer_app/src/features/channel/components/emoji_picker/EmojiPickerConstants.tsfluxer_app/src/features/channel/components/emoji_picker/VirtualRow.tsxfix(app): animate message emoji only while hovering the message (#1869)
fluxer_app/src/features/messaging/components/markdown/renderers/EmojiRenderer.tsxfluxer_app/src/features/messaging/utils/markdown/EmojiDetector.tsfix(app): draw the mention badge cutout from the badge itself (#1868)
fluxer_app/src/features/app/components/layout/GuildsLayout.module.cssfluxer_app/src/features/app/components/layout/sidebar_nav/GuildFolderItem.module.cssfluxer_app/src/features/app/components/layout/sidebar_nav/GuildFolderItem.tsxfluxer_app/src/features/app/components/skeleton/GuildRailSkeleton.module.cssfluxer_app/src/features/app/components/skeleton/GuildRailSkeleton.tsxfluxer_app/src/features/ui/components/MentionBadge.module.cssfluxer_app/src/features/ui/components/MentionBadge.tsxfix(app): stop animating emoji and stickers that have no animation (#1867)
fluxer_app/src/features/emoji/hooks/useStickerAnimation.tsfluxer_app/src/features/expressions/components/modals/EditGuildStickerModal.tsxfix(app): stop discovery animating on first render (#1866)
fluxer_app/src/features/discovery/discovery/DiscoveryTransition.tsxperf(app): fetch text attachment previews only when they scroll near (#1865)
fluxer_app/src/features/channel/components/embeds/attachments/AttachmentFile.tsxfluxer_app/src/features/channel/components/embeds/attachments/TextualAttachmentPreview.tsxfix(app): only animate media that has an animated variant (#1864)
fluxer_app/src/features/app/components/shared/custom_status_display/CustomStatusDisplay.tsxfluxer_app/src/features/app/hooks/useAnimatedImageUrl.tsfluxer_app/src/features/app/hooks/useAnimatedMediaPlayback.tsfix(app): scope near-viewport loading to the surrounding scroller (#1863)
fluxer_app/src/features/messaging/components/pages/MessageListPage.tsxfluxer_app/src/features/messaging/components/popouts/RecentMentionsContent.tsxfluxer_app/src/features/messaging/components/popouts/SavedMessagesContent.tsxfluxer_app/src/features/messaging/hooks/useNearViewport.tsfix(app): scope near-viewport loading to the surrounding scroller
fluxer_app/src/features/messaging/components/pages/MessageListPage.tsxfluxer_app/src/features/messaging/components/popouts/RecentMentionsContent.tsxfluxer_app/src/features/messaging/components/popouts/SavedMessagesContent.tsxfluxer_app/src/features/messaging/hooks/useNearViewport.tsfix(app): keep hydrated state across gateway session resumes (#1862)
fluxer_app/src/features/auth/state/AuthSession.tsfluxer_app/src/features/auth/state/Authentication.tsfluxer_app/src/features/channel/state/ChannelPins.tsfluxer_app/src/features/channel/state/Channels.tsfluxer_app/src/features/connection/state/UserConnection.tsfluxer_app/src/features/emoji/state/Emoji.tsfluxer_app/src/features/emoji/state/EmojiSticker.tsfluxer_app/src/features/gateway/events/GatewayReady.tsfluxer_app/src/features/gateway/transport/GatewayConnection.tsfluxer_app/src/features/guild/state/GuildCount.tsfluxer_app/src/features/guild/state/GuildList.tsfluxer_app/src/features/guild/state/GuildReadState.tsfluxer_app/src/features/guild/state/GuildVerification.tsfluxer_app/src/features/guild/state/Guilds.tsfluxer_app/src/features/member/state/GuildMembers.tsfluxer_app/src/features/member/state/MemberSearch.tsfluxer_app/src/features/messaging/state/MessageReactions.tsfluxer_app/src/features/messaging/state/MessageReferences.tsfluxer_app/src/features/messaging/state/MessagingMessages.tsfluxer_app/src/features/messaging/state/SavedMessages.tsfluxer_app/src/features/messaging/state/ScheduledMessages.tsfluxer_app/src/features/notification/state/MentionFeed.tsfluxer_app/src/features/permissions/state/Permission.tsfluxer_app/src/features/presence/state/Presence.tsfluxer_app/src/features/read_state/state/ReadStates.tsfluxer_app/src/features/read_state/state/read_states/ReadStateUnreadAnchor.test.tsfluxer_app/src/features/read_state/state/read_states/ReadStateUnreadAnchor.tsfluxer_app/src/features/user/state/UserGuildSettings.tsfluxer_app/src/features/user/state/UserProfile.tsfluxer_app/src/features/user/state/UserSettings.tsfluxer_app/src/features/user/state/Users.tsfluxer_app/src/features/user/state/WebAuthnCredentials.tsfluxer_app/src/features/voice/engine/MediaEngineFacade.tsfluxer_app/src/features/voice/engine/VoiceOutputDeviceSync.test.tsfluxer_app/src/features/voice/engine/v2/VoiceEngineV2AppRemoteSpeakingAdapter.test.tsfluxer_app/src/features/voice/engine/v2/VoiceEngineV2AppVoiceStateAdapter.test.tsfluxer_app/src/features/voice/engine/v2/VoiceEngineV2AppVoiceStateAdapter.tsfluxer_app/src/features/voice/state/ParticipantVolume.test.tsfluxer_app/src/features/voice/state/VoiceSettings.tsfluxer_app/src/features/voice/state/VoiceSettingsBackgroundPersistence.test.tsfluxer_app/src/features/voice/state/VoiceSettingsOutputVolumeMigration.test.tsfix(app): keep unsent messages and stop the unread jump on reconnect (#1861)
fluxer_app/src/features/app/components/floating/UnreadChannelsContent.tsxfluxer_app/src/features/channel/components/ChannelMessageStream.tsxfluxer_app/src/features/channel/components/ChannelMessages.tsxfluxer_app/src/features/channel/components/MessageAttachments.tsxfluxer_app/src/features/channel/components/PinSystemMessage.tsxfluxer_app/src/features/channel/components/ReplyPreview.tsxfluxer_app/src/features/gateway/events/GatewayReady.tsfluxer_app/src/features/messaging/commands/MessageCommands.tsxfluxer_app/src/features/messaging/components/markdown/renderers/LinkRenderer.tsxfluxer_app/src/features/messaging/state/ChannelMessages.tsfluxer_app/src/features/messaging/state/MessagingMessages.tsfluxer_app/src/features/messaging/utils/MessageGroupingUtils.tsfluxer_app/src/features/messaging/utils/MessageNavigator.tsfluxer_app/src/features/platform/utils/ScrollManager.tsfluxer_app/src/features/platform/utils/scroll_manager/shared.tsfluxer_app/src/features/read_state/state/read_states/ReadStateEntry.tsfix(app): keep the chat scroller pinned to the end while it resizes (#1860)
fluxer_app/src/features/app/components/dialogs/shared/MobileSettingsComponents.tsxfluxer_app/src/features/app/components/dialogs/shared/SettingsModalLayout.tsxfluxer_app/src/features/app/components/floating/UnreadChannelsContent.tsxfluxer_app/src/features/app/components/layout/AuthLayout.tsxfluxer_app/src/features/app/components/layout/ChannelListContent.tsxfluxer_app/src/features/app/components/layout/FavoritesChannelListContent.tsxfluxer_app/src/features/app/components/layout/FloatingUnreadIndicators.tsxfluxer_app/src/features/app/components/layout/GuildsLayout.tsxfluxer_app/src/features/app/components/skeleton/GuildRailSkeleton.tsxfluxer_app/src/features/app/components/whats_new/WhatsNewModal.tsxfluxer_app/src/features/app/hooks/useNavigationList.tsfluxer_app/src/features/channel/components/Autocomplete.tsxfluxer_app/src/features/channel/components/AutocompleteGif.tsxfluxer_app/src/features/channel/components/ChannelAttachmentArea.tsxfluxer_app/src/features/channel/components/ChannelMembers.tsxfluxer_app/src/features/channel/components/ChannelMessages.tsxfluxer_app/src/features/channel/components/ChannelSearchResults.tsxfluxer_app/src/features/channel/components/EmojiPicker.tsxfluxer_app/src/features/channel/components/MobileEmojiPicker.tsxfluxer_app/src/features/channel/components/MobileStickersPicker.tsxfluxer_app/src/features/channel/components/StickersPicker.tsxfluxer_app/src/features/channel/components/bottomsheets/ChannelSearchBottomSheet.tsxfluxer_app/src/features/channel/components/pickers/shared/MasonryListComputer.bench.tsfluxer_app/src/features/channel/components/pickers/shared/useScrollerViewport.tsfluxer_app/src/features/discovery/discovery/DiscoveryPage.tsxfluxer_app/src/features/messaging/hooks/useMessageListKeyboardNavigation.tsfluxer_app/src/features/messaging/state/MessagingMessages.tsfluxer_app/src/features/notification/state/NotificationAutoAck.tsfluxer_app/src/features/platform/utils/ScrollManager.tsfluxer_app/src/features/read_state/state/ReadStates.tsfluxer_app/src/features/search/components/bottomsheets/QuickSwitcherBottomSheet.tsxfluxer_app/src/features/search/components/quick_switcher/QuickSwitcherModal.tsxfluxer_app/src/features/ui/components/Scroller.tsxfluxer_app/src/features/ui/hooks/useScrollAnchor.tsfluxer_app/src/features/ui/state/Dimension.tsfluxer_app/src/features/voice/hooks/useWindowFocusVideoControl.tsrefactor(app): name mute and unread state accessors by intent (#1859)
fluxer_app/src/features/app/components/AppNotificationBadge.tsfluxer_app/src/features/app/components/bottomsheets/FavoritesGuildHeaderBottomSheet.tsxfluxer_app/src/features/app/components/floating/UnreadChannelsContent.tsxfluxer_app/src/features/app/components/layout/ChannelItem.tsxfluxer_app/src/features/app/components/layout/ChannelListContent.tsxfluxer_app/src/features/app/components/layout/FavoritesChannelListContent.tsxfluxer_app/src/features/app/components/layout/GuildsLayout.tsxfluxer_app/src/features/app/components/layout/sidebar_nav/GuildFolderItem.tsxfluxer_app/src/features/app/components/layout/sidebar_nav/GuildListDMItem.tsxfluxer_app/src/features/app/components/layout/sidebar_nav/UseGuildListItemState.tsfluxer_app/src/features/channel/components/direct_message/DMListItem.tsxfluxer_app/src/features/guild/components/modals/GuildNotificationSettingsModal.tsxfluxer_app/src/features/guild/components/popouts/GuildHeaderPopout.tsxfluxer_app/src/features/guild/state/GuildReadState.tsfluxer_app/src/features/messaging/models/MessagingMessage.tsfluxer_app/src/features/messaging/utils/MessageUtils.tsfluxer_app/src/features/notification/hooks/useMuteSheet.tsfluxer_app/src/features/read_state/state/read_states/ReadStateEntry.tsfluxer_app/src/features/ui/action_menu/ChannelListContextMenu.tsxfluxer_app/src/features/ui/action_menu/FavoritesGuildContextMenu.tsxfluxer_app/src/features/ui/action_menu/GuildFolderContextMenu.tsxfluxer_app/src/features/ui/action_menu/items/CategoryMenuData.tsxfluxer_app/src/features/ui/action_menu/items/CategoryMenuItems.tsxfluxer_app/src/features/ui/action_menu/items/GuildMenuData.tsxfluxer_app/src/features/ui/action_menu/items/GuildMenuItems.tsxfluxer_app/src/features/ui/state/Notification.tsfluxer_app/src/features/user/commands/UserGuildSettingsCommands.tsfluxer_app/src/features/user/state/UserGuildSettings.tsfluxer_app/src/features/voice/utils/DeepFilterNoiseProcessor.test.tsfluxer_app/src/features/voice/utils/InAppMediaSoundCapture.test.tsfluxer_app/src/features/voice/utils/VoiceProcessingProfile.test.tsfluxer_app/src/features/voice/utils/VoiceTtsUtils.tsxfluxer_app/src/features/window/commands/WindowCommands.tsrefactor(app): drop the unread jump anchor now the scroller finds it (#1858)
fluxer_app/src/features/app/hooks/useChannelHoverPreload.tsfluxer_app/src/features/app/keybindings/keybind_manager/handlers/defaultHandlers.tsfluxer_app/src/features/channel/components/ChannelMessages.tsxfluxer_app/src/features/guild/state/GuildReadState.tsfluxer_app/src/features/navigation/state/NavigationSideEffects.tsfluxer_app/src/features/notification/state/NotificationAutoAck.tsfluxer_app/src/features/read_state/state/ReadStates.tsfluxer_app/src/features/read_state/state/read_states/ReadStateAckMachine.test.tsfluxer_app/src/features/read_state/state/read_states/ReadStateAckMachine.tsfluxer_app/src/features/read_state/state/read_states/ReadStateEntry.tsfluxer_app/src/features/read_state/state/read_states/ReadStateEntryStatusMachine.bench.tsfluxer_app/src/features/read_state/state/read_states/ReadStateEntryStatusMachine.test.tsfluxer_app/src/features/read_state/state/read_states/ReadStateEntryStatusMachine.tsfluxer_app/src/features/read_state/state/read_states/ReadStateServerAckMachine.tsfluxer_app/src/features/read_state/state/read_states/shared.tsfluxer_app/src/features/search/state/QuickSwitcherResultGenerators.tsfluxer_app/src/features/ui/action_menu/FluxerButtonContextMenu.tsxfix(app): request custom emoji at one canonical image size (#1857)
fluxer_app/src/features/emoji/components/bottomsheets/EmojiInfoBottomSheet.tsxfluxer_app/src/features/expressions/models/GuildEmoji.tsfluxer_app/src/features/expressions/utils/CustomEmojiImageUrl.tsfluxer_app/src/features/user/components/modals/CustomStatusBottomSheet.tsxfluxer_app/src/features/user/components/modals/CustomStatusModal.tsxfix(app): paint avatars from a real image with a fading placeholder (#1856)
fluxer_app/scripts/GenerateAvatarMasks.tsfluxer_app/src/features/app/components/shared/GroupDMAvatar.tsxfluxer_app/src/features/app/hooks/useSaveData.tsfluxer_app/src/features/app/hooks/useShouldAnimate.tsfluxer_app/src/features/channel/components/MemberListItem.tsxfluxer_app/src/features/channel/components/bottomsheets/ChannelDetailsBottomSheetMemberList.tsxfluxer_app/src/features/ui/avatars/AvatarWithPresence.tsxfluxer_app/src/features/ui/components/Avatar.tsxfluxer_app/src/features/ui/components/BaseAvatar.module.cssfluxer_app/src/features/ui/components/BaseAvatar.tsxfluxer_app/src/features/ui/components/MockAvatar.tsxfluxer_app/src/features/ui/components/StatusAwareAvatar.tsxfluxer_app/src/features/ui/components/StatusIndicator.tsxperf(app): load images immediately instead of queueing four at a time (#1855)
fluxer_app/src/features/messaging/hooks/useCachedImageLoaded.tsfluxer_app/src/features/messaging/utils/ImageCacheUtils.test.tsfluxer_app/src/features/messaging/utils/ImageCacheUtils.ts