perf(app): defer video embed metadata probes until hover (#1893)
perf(app): defer video embed metadata probes until hover (#1893)
Inspect stored evidence paths
fluxer_app/src/features/channel/components/embeds/media/EmbedVideo.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
perf(app): defer video embed metadata probes until hover (#1893)
fluxer_app/src/features/channel/components/embeds/media/EmbedVideo.tsxfix(app): keep animated embed images animated (#1892)
fluxer_app/src/features/channel/components/embeds/channel_embed/ChannelEmbedShared.tsfluxer_app/src/features/channel/components/embeds/channel_embed/EmbedMediaRenderer.tsxfix(app): fade image embed placeholders out instead of images in (#1891)
fluxer_app/src/features/channel/components/embeds/media/EmbedImage.module.cssfluxer_app/src/features/channel/components/embeds/media/EmbedImage.tsxfeat(app): suggest recent speakers and stop autocomplete list flicker (#1890)
fluxer_app/src/features/lexical/composer/useAutocompleteGifSearch.tsfluxer_app/src/features/lexical/composer/useAutocompleteMemberSearch.tsfluxer_app/src/features/lexical/composer/useLexicalAutocomplete.tsfix(app): label pending composer attachments for screen readers (#1889)
fluxer_app/src/features/channel/components/ChannelAttachmentArea.tsxfix(app): request attachment images at their real mosaic tile size (#1888)
fluxer_app/src/features/channel/components/MessageAttachmentUtils.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/AttachmentLayoutGrid.tsxfluxer_app/src/features/channel/components/embeds/attachments/AttachmentSingleMedia.tsxfluxer_app/src/features/theme/styles/AttachmentGridItem.module.cssfluxer_app/src/features/ui/utils/DimensionUtils.test.tsfluxer_app/src/features/ui/utils/DimensionUtils.tsfeat(app): render search filters as inline tokens you can type through (#1887)
fluxer_app/src/features/lexical/nodes/SearchFilterNode.tsxfluxer_app/src/features/lexical/search/LexicalSearchInput.module.cssfluxer_app/src/features/lexical/search/LexicalSearchInput.tsxfluxer_app/src/features/lexical/search/SearchEditorModel.tsfluxer_app/src/features/lexical/search/SearchFilterPill.module.cssfluxer_app/src/features/lexical/search/SearchFilterPill.tsxfluxer_app/src/features/lexical/search/SearchFilterPillSelections.tsfluxer_app/src/features/lexical/search/SearchTokenNode.tsfeat(app): keep search history per conversation and allow in: in DMs (#1886)
fluxer_app/src/features/channel/components/ChannelSearchResults.tsxfluxer_app/src/features/channel/hooks/useChannelSearch.tsfluxer_app/src/features/search/state/SearchHistory.tsfluxer_app/src/features/search/utils/SearchUtils.tsfeat(app): keep search history per conversation and allow in: in DMs
fluxer_app/src/features/channel/components/ChannelSearchResults.tsxfluxer_app/src/features/channel/hooks/useChannelSearch.tsfluxer_app/src/features/search/state/SearchHistory.tsfluxer_app/src/features/search/utils/SearchUtils.tsfix(app): open channels at the unread divider and settle jump scrolling (#1885)
fluxer_app/src/features/channel/components/ChannelMessages.tsxfluxer_app/src/features/platform/utils/ScrollManager.tsfluxer_app/src/features/platform/utils/scroll_manager/shared.test.tsfluxer_app/src/features/platform/utils/scroll_manager/shared.tsfix(api): distinguish a deleted reply target from no reply (#1884)
fluxer_admin/openapi-admin.jsonfluxer_api/src/api/openapi/openapi.jsonfluxer_app/src/features/channel/components/ReplyPreview.tsxfluxer_app/src/features/messaging/state/MessageReferences.tsfluxer_app/src/features/voice/utils/VoiceTtsUtils.tsxfluxer_messages/src/shard_impl.rsfluxer_messages/src/types.rspackages/schema/src/domains/message/MessageResponseSchemas.tsfix(app): animate reaction emoji only while hovering them (#1883)
fluxer_app/src/features/channel/components/MessageReactions.tsxfluxer_app/src/features/messaging/components/ReactionImage.tsxfluxer_app/src/features/messaging/components/popouts/ReactionTooltip.tsxfluxer_app/src/features/messaging/utils/MessageReactionUtils.tsfluxer_app/src/features/messaging/utils/ReactionUtils.tsperf(app): preload reaction menu emoji at the size they render (#1882)
fluxer_app/src/features/channel/components/MessageActionBottomSheet.tsxfluxer_app/src/features/channel/components/QuickReactionsRow.tsxperf(app): preload reaction menu emoji at the size they render
fluxer_app/src/features/channel/components/MessageActionBottomSheet.tsxfluxer_app/src/features/channel/components/QuickReactionsRow.tsxfix(app): stop the quick switcher list rebuilding while you navigate (#1881)
fluxer_app/src/features/search/state/QuickSwitcher.tsxfluxer_app/src/features/search/state/QuickSwitcherSelection.test.tsfluxer_app/src/features/search/state/QuickSwitcherSelection.tsperf(app): load the keyboard mode intro modal only when it is shown (#1880)
fluxer_app/src/features/app/components/layout/KeyboardModeListener.tsfluxer_app/src/features/ui/state/KeyboardMode.tsxfix(app): show the server avatar on message notifications (#1879)
fluxer_app/src/features/app/hooks/useRovingFocusList.tsfluxer_app/src/features/notification/utils/NotificationIconURL.tsfluxer_app/src/features/notification/utils/NotificationUtils.tsfluxer_app/src/features/ui/state/Notification.tsfluxer_app/src/features/window/commands/WindowCommands.tsfix(app): order member mention results by search relevance (#1878)
fluxer_app/src/features/channel/components/modals/channel_tabs/channel_overview_tab/shared.tsfluxer_app/src/features/messaging/utils/AutocompleteOptionBuilders.tsperf(app): play gif embeds from the viewport not a js decoder (#1877)
fluxer_app/src/features/app/hooks/useAnimatedImageDecoder.test.tsfluxer_app/src/features/app/hooks/useAnimatedImageDecoder.tsfluxer_app/src/features/app/hooks/useShouldAnimate.tsfluxer_app/src/features/app/hooks/useViewportPlayback.tsfluxer_app/src/features/channel/components/embeds/media/EmbedGifv.module.cssfluxer_app/src/features/channel/components/embeds/media/EmbedGifv.tsxfluxer_app/src/features/channel/components/embeds/media/GIFVRenderStateMachine.tsfluxer_app/src/features/channel/components/embeds/media/GifViewportGate.tsfluxer_app/src/features/channel/components/embeds/media/MediaContainer.tsxfluxer_app/src/features/channel/components/embeds/media/MediaOverlayFit.tsfluxer_app/src/features/channel/components/embeds/media/VideoDimensionUtils.test.tsfluxer_app/src/features/channel/components/embeds/media/VideoDimensionUtils.tsfluxer_app/src/features/platform/utils/SharedIntersectionObserver.tsfluxer_app/src/features/platform/utils/ViewportPlaybackRegistry.tsfeat(app): warm full-size media while hovering an attachment (#1876)
fluxer_app/src/features/messaging/hooks/useMediaViewerHoverWarm.ts