From 32bdb0115d16c4398e7673c048c7761308d4576d Mon Sep 17 00:00:00 2001 From: otsmr Date: Wed, 30 Apr 2025 22:21:33 +0200 Subject: [PATCH] fix #146 --- lib/src/views/components/animate_icon.dart | 10 ++++++++-- lib/src/views/settings/chat/chat_reactions_view.dart | 5 ++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/src/views/components/animate_icon.dart b/lib/src/views/components/animate_icon.dart index 75ef490..c619b26 100644 --- a/lib/src/views/components/animate_icon.dart +++ b/lib/src/views/components/animate_icon.dart @@ -18,6 +18,7 @@ bool isEmoji(String character) { class EmojiAnimation extends StatelessWidget { final String emoji; + final bool repeat; static final Map animatedIcons = { "❤": "red_heart.json", "😂": "joy.json", @@ -388,7 +389,7 @@ class EmojiAnimation extends StatelessWidget { "🏴": "black-flag.json", }; - const EmojiAnimation({super.key, required this.emoji}); + const EmojiAnimation({super.key, required this.emoji, this.repeat = true}); static bool supported(String emoji) { if (emoji.length > 4) return false; @@ -401,7 +402,10 @@ class EmojiAnimation extends StatelessWidget { // Check if the emoji has a corresponding Lottie animation if (animatedIcons.containsKey(emoji)) { - return Lottie.asset("assets/animated_icons/${animatedIcons[emoji]}"); + return Lottie.asset( + "assets/animated_icons/${animatedIcons[emoji]}", + repeat: repeat, + ); } else if (isEmoji(emoji)) { return Text( emoji, @@ -421,6 +425,7 @@ class EmojiAnimationFlying extends StatelessWidget { final Duration duration; final double startPosition; final int size; + final bool repeat; const EmojiAnimationFlying({ super.key, @@ -428,6 +433,7 @@ class EmojiAnimationFlying extends StatelessWidget { required this.duration, required this.startPosition, required this.size, + this.repeat = true, }); @override diff --git a/lib/src/views/settings/chat/chat_reactions_view.dart b/lib/src/views/settings/chat/chat_reactions_view.dart index c8a4ae6..4d66e64 100644 --- a/lib/src/views/settings/chat/chat_reactions_view.dart +++ b/lib/src/views/settings/chat/chat_reactions_view.dart @@ -79,7 +79,10 @@ class _ChatReactionSelectionView extends State { child: SizedBox( width: 40, height: 40, - child: EmojiAnimation(emoji: emoji), + child: EmojiAnimation( + emoji: emoji, + repeat: selectedEmojis.contains(emoji), + ), ), ), ),