From 646723d7cab3fa5c511a789c4e095ce44083ddcc Mon Sep 17 00:00:00 2001 From: ggurdin Date: Tue, 24 Jun 2025 15:04:03 -0400 Subject: [PATCH] chore: update pin button after pinning / unpinning a message --- lib/pages/chat/chat.dart | 13 +++++++++++-- lib/pangea/toolbar/widgets/overlay_header.dart | 7 ++++++- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/lib/pages/chat/chat.dart b/lib/pages/chat/chat.dart index e2cd8b515..3b2a0dedf 100644 --- a/lib/pages/chat/chat.dart +++ b/lib/pages/chat/chat.dart @@ -1856,7 +1856,10 @@ class ChatController extends State } } - void pinEvent() { + // #Pangea + // void pinEvent() { + Future pinEvent() async { + // Pangea# final pinnedEventIds = room.pinnedEventIds; final selectedEventIds = selectedEvents.map((e) => e.eventId).toSet(); final unpin = selectedEventIds.length == 1 && @@ -1866,10 +1869,16 @@ class ChatController extends State } else { pinnedEventIds.addAll(selectedEventIds); } - showFutureLoadingDialog( + // #Pangea + // showFutureLoadingDialog( + // context: context, + // future: () => room.setPinnedEvents(pinnedEventIds), + // ); + await showFutureLoadingDialog( context: context, future: () => room.setPinnedEvents(pinnedEventIds), ); + // Pangea# } Timer? _storeInputTimeoutTimer; diff --git a/lib/pangea/toolbar/widgets/overlay_header.dart b/lib/pangea/toolbar/widgets/overlay_header.dart index a13e1c2a4..81bb4aba4 100644 --- a/lib/pangea/toolbar/widgets/overlay_header.dart +++ b/lib/pangea/toolbar/widgets/overlay_header.dart @@ -109,10 +109,15 @@ class OverlayHeaderState extends State { icon: pinned ? const Icon(Icons.push_pin) : const Icon(Icons.push_pin_outlined), - onPressed: controller.pinEvent, + onPressed: () { + controller + .pinEvent() + .then((_) => setState(() {})); + }, tooltip: pinned ? l10n.unpin : l10n.pinMessage, color: theme.colorScheme.primary, ), + if (controller.canEditSelectedEvents && !controller.selectedEvents.first.isActivityMessage) IconButton(