frosty/lib/widgets
Tommy Chow 57e7f73aa8 perf(chat): cut per-flush rebuild and decode costs in message list
every 200ms flush shifted all sliver indices (reverse list), and the
per-row ObjectKeys without findChildIndexCallback made the framework
deactivate and re-inflate every built row instead of moving it. add the
callback so elements move, and cache ChatMessage widget instances per
message (Expando) so unchanged rows skip build() entirely via the
identical-widget short-circuit. IRCMessage.renderRevision invalidates
rows the CLEARCHAT/CLEARMSG handlers mutate in place.

also decode emotes/badges at display size (memCacheHeight = logical
size x devicePixelRatio) instead of the CDN's 3x-4x intrinsic size:
several-fold less image memory and raster cost, animation preserved
(ResizeImage applies the target size to the whole codec).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 14:45:20 -04:00
..
chat_input add inline emote support in chat text field 2026-01-02 21:51:50 -05:00
accent_color_picker_dialog.dart audit and optimize haptic feedback across the app 2026-03-07 17:46:24 -08:00
accent_color_setting.dart v5 (#463) 2026-01-01 22:28:17 -05:00
alert_message.dart add FrostyColors ThemeExtension, align hardcoded colors with M3 roles 2026-03-01 19:01:44 -08:00
animated_scroll_border.dart v5 (#463) 2026-01-01 22:28:17 -05:00
blurred_container.dart replace BackdropFilter with solid container on stream card badge, remove AnimatedContainer from BlurredContainer 2026-02-08 20:13:35 -08:00
draggable_divider.dart v5 (#463) 2026-01-01 22:28:17 -05:00
expandable_section_header.dart feat(video,chat): native player, ad-break awareness, chat send/delay reliability, and tab redesign (#567) 2026-06-13 17:06:24 -04:00
external_browser_setting.dart v5 (#463) 2026-01-01 22:28:17 -05:00
frosty_app_bar.dart v5 (#463) 2026-01-01 22:28:17 -05:00
frosty_cached_network_image.dart perf(chat): cut per-flush rebuild and decode costs in message list 2026-07-03 14:45:20 -04:00
frosty_dialog.dart upgrade dependencies, fix null-aware element lint 2026-02-08 20:13:35 -08:00
frosty_notification.dart add FrostyColors ThemeExtension, align hardcoded colors with M3 roles 2026-03-01 19:01:44 -08:00
frosty_page_view.dart move clear recent emotes action to tab bar icon button 2026-03-03 20:40:33 -08:00
frosty_photo_view_dialog.dart add FrostyColors ThemeExtension, align hardcoded colors with M3 roles 2026-03-01 19:01:44 -08:00
frosty_scrollbar.dart v5 (#463) 2026-01-01 22:28:17 -05:00
live_indicator.dart feat(video,chat): native player, ad-break awareness, chat send/delay reliability, and tab redesign (#567) 2026-06-13 17:06:24 -04:00
loading_indicator.dart add FrostyColors ThemeExtension, align hardcoded colors with M3 roles 2026-03-01 19:01:44 -08:00
measure_size.dart feat(video,chat): native player, ad-break awareness, chat send/delay reliability, and tab redesign (#567) 2026-06-13 17:06:24 -04:00
profile_picture.dart feat(video,chat): native player, ad-break awareness, chat send/delay reliability, and tab redesign (#567) 2026-06-13 17:06:24 -04:00
scroll_to_top_button.dart v5 (#463) 2026-01-01 22:28:17 -05:00
section_header.dart feat(video,chat): native player, ad-break awareness, chat send/delay reliability, and tab redesign (#567) 2026-06-13 17:06:24 -04:00
settings_page_layout.dart feat(video,chat): native player, ad-break awareness, chat send/delay reliability, and tab redesign (#567) 2026-06-13 17:06:24 -04:00
skeleton_loader.dart extract kCardBorderRadius constant for card thumbnails 2026-03-01 19:01:58 -08:00
theme_selection_setting.dart v5 (#463) 2026-01-01 22:28:17 -05:00
uptime.dart v5 (#463) 2026-01-01 22:28:17 -05:00
user_actions_modal.dart feat(chat): moderator actions (delete / timeout / ban / unban) (#576) 2026-07-02 17:43:37 -04:00