diff --git a/lib/controllers/event.dart b/lib/controllers/event.dart index a41d6b6..44a44f0 100644 --- a/lib/controllers/event.dart +++ b/lib/controllers/event.dart @@ -9,11 +9,12 @@ class EventController(final GetEventRequest request) extends AsyncNotifier { @override Future build() async { - final room = ref.watch( - RoomsController.provider.select((value) => value[request.roomId]), - ); - final event = room?.events.values.firstWhereOrNull( - (event) => event.eventId == request.eventId, + final event = ref.watch( + RoomsController.provider.select( + (rooms) => rooms[request.roomId]?.events.values.firstWhereOrNull( + (event) => event.eventId == request.eventId, + ), + ), ); if (event != null) return event; diff --git a/lib/widgets/renderers/pinned_events_diff.dart b/lib/widgets/renderers/pinned_events_diff.dart index 2aa1a3d..9f3d34c 100644 --- a/lib/widgets/renderers/pinned_events_diff.dart +++ b/lib/widgets/renderers/pinned_events_diff.dart @@ -53,7 +53,8 @@ class const PinnedEventsDiff( .new(roomId: roomId, eventId: change.$1), ), )) { - AsyncData(value: final event?) => InkWell( + // Keeps showing the event while it reloads + AsyncValue(value: final event?) => InkWell( borderRadius: .circular(4), hoverColor: color.withValues(alpha: 0.12), onTap: jumpToEvent == null