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?> { extends AsyncNotifier<Event?> {
@override @override
Future<Event?> build() async { Future<Event?> build() async {
final room = ref.watch( final event = ref.watch(
RoomsController.provider.select((value) => value[request.roomId]), RoomsController.provider.select(
); (rooms) => rooms[request.roomId]?.events.values.firstWhereOrNull(
final event = room?.events.values.firstWhereOrNull(
(event) => event.eventId == request.eventId, (event) => event.eventId == request.eventId,
),
),
); );
if (event != null) return event; if (event != null) return event;

View file

@ -53,7 +53,8 @@ class const PinnedEventsDiff(
.new(roomId: roomId, eventId: change.$1), .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), borderRadius: .circular(4),
hoverColor: color.withValues(alpha: 0.12), hoverColor: color.withValues(alpha: 0.12),
onTap: jumpToEvent == null onTap: jumpToEvent == null