Merge branch 'develop' into fix/channel-unset
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
- Added `PaginationParams.createdAtAround` for message pagination.
|
||||
- Added support for `channel.disabled`, `channel.hidden` and `channel.truncatedAt` in `Channel`.
|
||||
- Added support for `channel.membership` and `channel.membershipStream` in `Channel`.
|
||||
- `Channel` now listens for `member.updated` events and updates the `Channel.members` accordingly.
|
||||
|
||||
🔄 Changed
|
||||
|
||||
|
||||
@@ -1588,6 +1588,8 @@ class ChannelClientState {
|
||||
|
||||
_listenMemberRemoved();
|
||||
|
||||
_listenMemberUpdated();
|
||||
|
||||
_listenMemberBanned();
|
||||
|
||||
_listenMemberUnbanned();
|
||||
@@ -1680,6 +1682,18 @@ class ChannelClientState {
|
||||
}));
|
||||
}
|
||||
|
||||
void _listenMemberUpdated() {
|
||||
_subscriptions.add(_channel.on(EventType.memberUpdated).listen((Event e) {
|
||||
final member = e.member;
|
||||
final existingMembers = channelState.members ?? [];
|
||||
updateChannelState(channelState.copyWith(
|
||||
members: existingMembers
|
||||
.map((m) => m.userId == member!.userId ? member : m)
|
||||
.toList(growable: false),
|
||||
));
|
||||
}));
|
||||
}
|
||||
|
||||
void _listenChannelUpdated() {
|
||||
_subscriptions.add(_channel.on(EventType.channelUpdated).listen((Event e) {
|
||||
final channel = e.channel!;
|
||||
|
||||
@@ -73,6 +73,9 @@ class EventType {
|
||||
/// Event sent when a member is removed to a channel
|
||||
static const String memberRemoved = 'member.removed';
|
||||
|
||||
/// Event sent when a member is updated in a channel
|
||||
static const String memberUpdated = 'member.updated';
|
||||
|
||||
/// Event sent when a member is removed to a channel
|
||||
static const String userBanned = 'user.banned';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user