Continuously load more messages until there are 20 or no more
This commit is contained in:
parent
639d27a5fc
commit
aac843d793
2 changed files with 43 additions and 35 deletions
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue