Continuously load more messages until there are 20 or no more

This commit is contained in:
Henry Hiles 2026-04-05 13:32:59 -04:00
commit aac843d793
Signed by: Henry-Hiles
SSH key fingerprint: SHA256:VKQUdS31Q90KvX7EkKMHMBpUspcmItAh86a+v7PGiIs
2 changed files with 43 additions and 35 deletions

View file

@ -11,7 +11,11 @@ class RoomsController extends Notifier<IMap<String, Room>> {
@override
IMap<String, Room> build() => const IMap.empty();
void update(IMap<String, Room> rooms, ISet<String> leftRooms) {
void update(
IMap<String, Room> rooms,
ISet<String> leftRooms, {
bool addToNewEvents = true,
}) {
final homeserver =
ref.watch(
ClientStateController.provider.select(
@ -29,18 +33,20 @@ class RoomsController extends Notifier<IMap<String, Room>> {
(item) => item.eventId,
);
ref
.watch(NewEventsController.provider(roomId).notifier)
.add(
incoming.timeline
.map(
(timelineTuple) => events?.firstWhereOrNull(
(event) => timelineTuple.eventRowId == event.rowId,
),
)
.nonNulls
.toIList(),
);
if (addToNewEvents) {
ref
.watch(NewEventsController.provider(roomId).notifier)
.add(
incoming.timeline
.map(
(timelineTuple) => events?.firstWhereOrNull(
(event) => timelineTuple.eventRowId == event.rowId,
),
)
.nonNulls
.toIList(),
);
}
return acc.add(
roomId,