From cce5900d716b648768e5dd2f6caf5e19571d53d0 Mon Sep 17 00:00:00 2001 From: Krille Date: Sun, 2 Apr 2023 09:33:27 +0200 Subject: [PATCH] chore: Follow up jump to event --- lib/pages/chat/chat.dart | 12 +++++------- lib/pages/chat/chat_view.dart | 1 - 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/lib/pages/chat/chat.dart b/lib/pages/chat/chat.dart index 54f8eb81..43fb8233 100644 --- a/lib/pages/chat/chat.dart +++ b/lib/pages/chat/chat.dart @@ -308,7 +308,6 @@ class ChatController extends State { if (event != null) { scrollToEventId(event); } - _updateScrollController(); } }); @@ -783,23 +782,22 @@ class ChatController extends State { inputFocus.requestFocus(); } - void scrollToEventId(String eventId, {Duration? duration}) async { - var eventIndex = timeline!.events.indexWhere((e) => e.eventId == eventId); + void scrollToEventId(String eventId) async { + final eventIndex = timeline!.events.indexWhere((e) => e.eventId == eventId); if (eventIndex == -1) { setState(() { timeline = null; loadTimelineFuture = _getTimeline(eventId); }); await loadTimelineFuture; - eventIndex = timeline!.events.indexWhere((e) => e.eventId == eventId); - } - if (!mounted) { + WidgetsBinding.instance.addPostFrameCallback((timeStamp) { + scrollToEventId(eventId); + }); return; } await scrollController.scrollToIndex( eventIndex, preferPosition: AutoScrollPosition.middle, - duration: duration ?? scrollAnimationDuration, ); _updateScrollController(); } diff --git a/lib/pages/chat/chat_view.dart b/lib/pages/chat/chat_view.dart index 76d1843f..27d58d81 100644 --- a/lib/pages/chat/chat_view.dart +++ b/lib/pages/chat/chat_view.dart @@ -347,7 +347,6 @@ class ChatView extends StatelessWidget { icon: const Icon(Icons.arrow_upward_outlined), onPressed: () => controller.scrollToEventId( controller.room.fullyRead, - duration: Duration.zero, ), label: Row( mainAxisSize: MainAxisSize.min,