diff --git a/lib/widgets/room_chat.dart b/lib/widgets/room_chat.dart index f50db27..5926844 100644 --- a/lib/widgets/room_chat.dart +++ b/lib/widgets/room_chat.dart @@ -87,7 +87,14 @@ class RoomChat extends HookConsumerWidget { ); Future jumpToId(String eventId) async { - final events = controllerData.value; + var events = ref.read(controllerProvider).value; + while (events?.any((event) => event.eventId == eventId) != true) { + final room = ref.read(RoomsController.provider)[roomId]; + if (room == null || !room.hasMore) return; + await notifier.loadOlder(); + await WidgetsBinding.instance.endOfFrame; + events = ref.read(controllerProvider).value; + } if (events == null || !scrollController.hasClients) return; final sourceIndex = events.indexWhere(