From 3ddc8873357b04c3f8dbe486e5250d03f43fea44 Mon Sep 17 00:00:00 2001 From: avashilling <165050625+avashilling@users.noreply.github.com> Date: Fri, 1 Aug 2025 15:13:00 -0400 Subject: [PATCH] fix: consistent unpinning and unhighlight on unpin --- lib/pages/chat/chat.dart | 7 ++++++- lib/pages/chat/events/message.dart | 5 +---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/pages/chat/chat.dart b/lib/pages/chat/chat.dart index e0925f9f5..02ccfff3a 100644 --- a/lib/pages/chat/chat.dart +++ b/lib/pages/chat/chat.dart @@ -1184,6 +1184,11 @@ class ChatController extends State if (response == OkCancelResult.ok) { final events = room.pinnedEventIds ..removeWhere((oldEvent) => oldEvent == eventId); + if (scrollToEventIdMarker == eventId) { + setState(() { + scrollToEventIdMarker = null; + }); + } showFutureLoadingDialog( context: context, future: () => room.setPinnedEvents(events), @@ -1197,7 +1202,7 @@ class ChatController extends State final unpin = selectedEventIds.length == 1 && pinnedEventIds.contains(selectedEventIds.single); if (unpin) { - pinnedEventIds.removeWhere(selectedEventIds.contains); + unpinEvent(selectedEventIds.single); } else { pinnedEventIds.addAll(selectedEventIds); } diff --git a/lib/pages/chat/events/message.dart b/lib/pages/chat/events/message.dart index 5500c7e52..d0b4c025e 100644 --- a/lib/pages/chat/events/message.dart +++ b/lib/pages/chat/events/message.dart @@ -293,10 +293,7 @@ class Message extends StatelessWidget { borderRadius: BorderRadius.circular( AppConfig.borderRadius / 2, ), - color: selected || - (highlightMarker && - event.room.pinnedEventIds - .contains(event.eventId)) + color: selected || highlightMarker ? theme.colorScheme.secondaryContainer .withAlpha(128) : Colors.transparent,