From 07037537e111c8a2f5fcb67ae87b582d368fcbaa Mon Sep 17 00:00:00 2001 From: otsmr Date: Tue, 7 Jul 2026 22:29:10 +0200 Subject: [PATCH] fix performance issue --- .../reaction_buttons.comp.dart | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/src/visual/views/chats/media_viewer_components/reaction_buttons.comp.dart b/lib/src/visual/views/chats/media_viewer_components/reaction_buttons.comp.dart index 71d419fa..1aae402d 100644 --- a/lib/src/visual/views/chats/media_viewer_components/reaction_buttons.comp.dart +++ b/lib/src/visual/views/chats/media_viewer_components/reaction_buttons.comp.dart @@ -208,10 +208,16 @@ class EmojiFloatWidgetState extends State @override void initState() { super.initState(); - _ticker = createTicker(_tick)..start(); + _ticker = createTicker(_tick); } void _tick(Duration elapsed) { + if (_particles.isEmpty) { + _ticker.stop(); + _lastTick = Duration.zero; + return; + } + final dt = (_lastTick == Duration.zero) ? 0.016 : (elapsed - _lastTick).inMicroseconds / 1e6; @@ -258,7 +264,12 @@ class EmojiFloatWidgetState extends State ), ); } - setState(() {}); + if (!_ticker.isActive) { + _lastTick = Duration.zero; + _ticker.start(); + } else { + if (mounted) setState(() {}); + } } @override