diff --git a/packages/stream_chat_flutter_core/CHANGELOG.md b/packages/stream_chat_flutter_core/CHANGELOG.md index edd187dc..346059b4 100644 --- a/packages/stream_chat_flutter_core/CHANGELOG.md +++ b/packages/stream_chat_flutter_core/CHANGELOG.md @@ -4,6 +4,8 @@ - [#1269](https://github.com/GetStream/stream-chat-flutter/issues/1269) Fix `ChannelListEventHandler` castError at PagedValue.asSuccess. +- [#1241](https://github.com/GetStream/stream-chat-flutter/issues/1241) StreamChannelListView load + more indicator non stop. ✅ Added diff --git a/packages/stream_chat_flutter_core/lib/src/stream_channel_list_controller.dart b/packages/stream_chat_flutter_core/lib/src/stream_channel_list_controller.dart index 484b1f22..210d5e00 100644 --- a/packages/stream_chat_flutter_core/lib/src/stream_channel_list_controller.dart +++ b/packages/stream_chat_flutter_core/lib/src/stream_channel_list_controller.dart @@ -190,13 +190,14 @@ class StreamChannelListController extends PagedValueNotifier { return super.refresh(resetValue: resetValue); } - /// Replaces the previously loaded channels with [channels] and updates - /// the nextPageKey. + /// Replaces the previously loaded channels with the passed [channels]. set channels(List channels) { - value = PagedValue( - items: channels, - nextPageKey: channels.length, - ); + if (value.isSuccess) { + final currentValue = value.asSuccess; + value = currentValue.copyWith(items: channels); + } else { + value = PagedValue(items: channels); + } } /// Returns/Creates a new Channel and starts watching it. diff --git a/packages/stream_chat_flutter_core/lib/src/stream_user_list_controller.dart b/packages/stream_chat_flutter_core/lib/src/stream_user_list_controller.dart index 3e1b2892..466b6177 100644 --- a/packages/stream_chat_flutter_core/lib/src/stream_user_list_controller.dart +++ b/packages/stream_chat_flutter_core/lib/src/stream_user_list_controller.dart @@ -153,12 +153,13 @@ class StreamUserListController extends PagedValueNotifier { return super.refresh(resetValue: resetValue); } - /// Replaces the previously loaded users with [users] and updates - /// the nextPageKey. + /// Replaces the previously loaded users with the passed [users]. set users(List users) { - value = PagedValue( - items: users, - nextPageKey: users.length, - ); + if (value.isSuccess) { + final currentValue = value.asSuccess; + value = currentValue.copyWith(items: users); + } else { + value = PagedValue(items: users); + } } }