change algorithm for deciding when to load more messages
This commit is contained in:
parent
7016cc4205
commit
a28592d11e
1 changed files with 9 additions and 2 deletions
|
|
@ -6,6 +6,7 @@ import "package:flutter_riverpod/flutter_riverpod.dart";
|
|||
import "package:fluttertagger/fluttertagger.dart";
|
||||
import "package:nexus/controllers/client_controller.dart";
|
||||
import "package:nexus/controllers/rooms_controller.dart";
|
||||
import "package:nexus/models/content/message.dart";
|
||||
import "package:nexus/models/content/reaction.dart";
|
||||
import "package:nexus/models/event.dart";
|
||||
import "package:nexus/models/requests/get_related_events_request.dart";
|
||||
|
|
@ -37,8 +38,14 @@ class RoomChatController extends AsyncNotifier<IList<Event>> {
|
|||
await ref.read(RoomsController.provider.notifier).addState(roomId, state);
|
||||
}
|
||||
|
||||
// While there are under 30 messages, try up to load more messages until there's no more or we have 20 messages.
|
||||
if (room.hasMore && room.timeline.length < 30) {
|
||||
// While there are under 5 messages or under 20 events, try to load
|
||||
// more messages until there's no more or the conditions are met.
|
||||
if (room.hasMore &&
|
||||
(room.events.values
|
||||
.where((event) => event.content is MessageContent)
|
||||
.length <
|
||||
5 ||
|
||||
room.timeline.length < 20)) {
|
||||
loadOlder();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue