Skip to content

Commit cf64a05

Browse files
committed
fix(persistence): improve pagination handling by clamping offset
1 parent 1b1e952 commit cf64a05

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

packages/stream_chat_persistence/lib/src/stream_chat_persistence_client.dart

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -281,13 +281,15 @@ class StreamChatPersistenceClient extends ChatPersistenceClient {
281281
channelStates.sort(channelStateSort.compare);
282282
}
283283

284-
final offset = paginationParams?.offset;
285-
if (offset != null && offset > 0 && channelStates.isNotEmpty) {
286-
channelStates.removeRange(0, offset);
284+
// Apply offset
285+
if (paginationParams?.offset case final paginationOffset?) {
286+
final clampedOffset = paginationOffset.clamp(0, channelStates.length);
287+
channelStates.removeRange(0, clampedOffset);
287288
}
288289

289-
if (paginationParams?.limit != null) {
290-
return channelStates.take(paginationParams!.limit).toList();
290+
// Apply limit
291+
if (paginationParams?.limit case final paginationLimit?) {
292+
return channelStates.take(paginationLimit).toList();
291293
}
292294

293295
return channelStates;

0 commit comments

Comments
 (0)