properly order historical timelines

Fixes #117
This commit is contained in:
Henry Hiles 2026-10-14 23:37:53 -04:00
commit 2d619bf1ad
Signed by: Henry-Hiles
SSH key fingerprint: SHA256:VKQUdS31Q90KvX7EkKMHMBpUspcmItAh86a+v7PGiIs

View file

@ -65,14 +65,18 @@ class RoomChatController(final ChatParams info)
), ),
); );
final events = context.before.add(context.event).addAll(context.after); // `before` is in reverse chronological order
final events = context.before.reversed
.toIList()
.add(context.event)
.addAll(context.after);
ref ref
.read(RoomsController.provider.notifier) .read(RoomsController.provider.notifier)
.update( .update(
.new({ .new({
info.roomId: Room( info.roomId: Room(
events: IMap.fromIterable( events: IMap.fromIterable(
events, events.addAll(context.relatedEvents),
keyMapper: (event) => event.rowId, keyMapper: (event) => event.rowId,
), ),
), ),
@ -185,16 +189,21 @@ class RoomChatController(final ChatParams info)
.new({ .new({
info.roomId: Room( info.roomId: Room(
events: IMap.fromIterable( events: IMap.fromIterable(
paginationResponse.events, paginationResponse.events.addAll(
paginationResponse.relatedEvents,
),
keyMapper: (event) => event.rowId, keyMapper: (event) => event.rowId,
), ),
), ),
}), }),
); );
final eventRowIds = paginationResponse.events final eventRowIds =
.map((element) => element.rowId) (direction == .forward
.toIList(); ? paginationResponse.events
: paginationResponse.events.reversed)
.map((element) => element.rowId)
.toIList();
state = .data( state = .data(
.new( .new(