fix bug in timeline

This commit is contained in:
Henry Hiles 2026-01-30 14:26:59 +01:00
commit 34f45c929a
No known key found for this signature in database
4 changed files with 36 additions and 19 deletions

View file

@ -15,18 +15,29 @@ class RoomsController extends Notifier<IMap<String, Room>> {
final incoming = entry.value;
final existing = acc[roomId];
final events = existing?.events.updateById(
incoming.events,
(item) => item.eventId,
);
ref
.watch(NewEventsController.provider(roomId).notifier)
.add(incoming.events);
.add(
incoming.timeline
.map(
(timelineTuple) => events?.firstWhereOrNull(
(event) => timelineTuple.eventRowId == event.rowId,
),
)
.nonNulls
.toIList(),
);
return acc.add(
roomId,
existing?.copyWith(
metadata: incoming.metadata ?? existing.metadata,
events: existing.events.updateById(
incoming.events,
(item) => item.eventId,
),
events: events!,
state: incoming.state.entries.fold(
existing.state,
(previousValue, event) => previousValue.add(