diff --git a/packages/stream_chat_flutter/CHANGELOG.md b/packages/stream_chat_flutter/CHANGELOG.md index 94e939af..746a76d2 100644 --- a/packages/stream_chat_flutter/CHANGELOG.md +++ b/packages/stream_chat_flutter/CHANGELOG.md @@ -1,6 +1,9 @@ ## 2.0.0-nullsafety.2 - Migrate this package to null safety + +## 1.5.4 + - Updated `stream_chat_core` dependency ## 1.5.3 diff --git a/packages/stream_chat_flutter_core/CHANGELOG.md b/packages/stream_chat_flutter_core/CHANGELOG.md index e3436ad3..10443a52 100644 --- a/packages/stream_chat_flutter_core/CHANGELOG.md +++ b/packages/stream_chat_flutter_core/CHANGELOG.md @@ -3,6 +3,10 @@ * Migrate this package to null safety * Update llc dependency +## 1.5.3 + +* Fix ChannelsBloc not performing calls if pagination ended + ## 1.5.2 * Update llc dependency diff --git a/packages/stream_chat_flutter_core/lib/src/channels_bloc.dart b/packages/stream_chat_flutter_core/lib/src/channels_bloc.dart index 32e63bdc..ce17235a 100644 --- a/packages/stream_chat_flutter_core/lib/src/channels_bloc.dart +++ b/packages/stream_chat_flutter_core/lib/src/channels_bloc.dart @@ -95,7 +95,10 @@ class ChannelsBlocState extends State }) async { final client = StreamChatCore.of(context).client; - if (_paginationEnded || _queryChannelsLoadingController.value == true) { + final clear = paginationParams.offset == 0; + + if ((!clear && _paginationEnded) || + _queryChannelsLoadingController.value == true) { return; } @@ -104,7 +107,6 @@ class ChannelsBlocState extends State } try { - final clear = paginationParams.offset == 0; final oldChannels = List.from(channels ?? []); var newChannels = []; await for (final channels in client.queryChannels( @@ -146,7 +148,11 @@ class ChannelsBlocState extends State final client = StreamChatCore.of(context).client; if (!widget.lockChannelsOrder) { - _subscriptions.add(client.on(EventType.messageNew).listen((e) { + _subscriptions.add(client + .on( + EventType.messageNew, + ) + .listen((e) { final newChannels = List.from(channels ?? []); final index = newChannels.indexWhere((c) => c.cid == e.cid); if (index != -1) {