🔀 Merge pull request #178 from Texas0295/v3
[FIX] chat: fix message pagination logic
This commit is contained in:
@@ -289,7 +289,6 @@ class MessagesNotifier extends _$MessagesNotifier {
|
|||||||
bool? _withAttachments;
|
bool? _withAttachments;
|
||||||
|
|
||||||
late final String _roomId;
|
late final String _roomId;
|
||||||
int _currentPage = 0;
|
|
||||||
static const int _pageSize = 20;
|
static const int _pageSize = 20;
|
||||||
bool _hasMore = true;
|
bool _hasMore = true;
|
||||||
bool _isSyncing = false;
|
bool _isSyncing = false;
|
||||||
@@ -570,9 +569,11 @@ class MessagesNotifier extends _$MessagesNotifier {
|
|||||||
if (_searchQuery == null || _searchQuery!.isEmpty) {
|
if (_searchQuery == null || _searchQuery!.isEmpty) {
|
||||||
syncMessages();
|
syncMessages();
|
||||||
}
|
}
|
||||||
final messages = await _getCachedMessages(offset: 0, take: 100);
|
|
||||||
_currentPage = 0;
|
final messages = await _getCachedMessages(offset: 0, take: _pageSize);
|
||||||
|
|
||||||
_hasMore = messages.length == _pageSize;
|
_hasMore = messages.length == _pageSize;
|
||||||
|
|
||||||
state = AsyncValue.data(messages);
|
state = AsyncValue.data(messages);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -582,11 +583,9 @@ class MessagesNotifier extends _$MessagesNotifier {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
final currentMessages = state.value ?? [];
|
final currentMessages = state.value ?? [];
|
||||||
_currentPage++;
|
final offset = currentMessages.length;
|
||||||
final newMessages = await listMessages(
|
|
||||||
offset: _currentPage * _pageSize,
|
final newMessages = await listMessages(offset: offset, take: _pageSize);
|
||||||
take: _pageSize,
|
|
||||||
);
|
|
||||||
|
|
||||||
if (newMessages.isEmpty || newMessages.length < _pageSize) {
|
if (newMessages.isEmpty || newMessages.length < _pageSize) {
|
||||||
_hasMore = false;
|
_hasMore = false;
|
||||||
@@ -603,7 +602,6 @@ class MessagesNotifier extends _$MessagesNotifier {
|
|||||||
stackTrace: stackTrace,
|
stackTrace: stackTrace,
|
||||||
);
|
);
|
||||||
showErrorAlert(err);
|
showErrorAlert(err);
|
||||||
_currentPage--;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user