avoid un-needed reloads for diffs

This commit is contained in:
Henry Hiles 2026-10-23 17:02:41 -04:00
commit 868023a4a1
Signed by: Henry-Hiles
SSH key fingerprint: SHA256:VKQUdS31Q90KvX7EkKMHMBpUspcmItAh86a+v7PGiIs
2 changed files with 8 additions and 6 deletions

View file

@ -9,11 +9,12 @@ class EventController(final GetEventRequest request)
extends AsyncNotifier<Event?> {
@override
Future<Event?> build() async {
final room = ref.watch(
RoomsController.provider.select((value) => value[request.roomId]),
);
final event = room?.events.values.firstWhereOrNull(
final event = ref.watch(
RoomsController.provider.select(
(rooms) => rooms[request.roomId]?.events.values.firstWhereOrNull(
(event) => event.eventId == request.eventId,
),
),
);
if (event != null) return event;

View file

@ -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