feat(llc): handle member.updated events in channel client

Signed-off-by: xsahil03x <[email protected]>
This commit is contained in:
Sahil Kumar
2022-05-19 18:23:10 +05:30
committed by xsahil03x
parent f5786ce079
commit 731db0ccc1
3 changed files with 19 additions and 1 deletions
@@ -1552,6 +1552,8 @@ class ChannelClientState {
_listenMemberRemoved();
_listenMemberUpdated();
_listenMemberBanned();
_listenMemberUnbanned();
@@ -1644,6 +1646,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';