Merge pull request #1167 from GetStream/feat/listen-channel-member-updated
feat(llc): handle member.updated events in channel client
This commit is contained in:
@@ -8,10 +8,11 @@
|
|||||||
- Added `PaginationParams.createdAtBefore` for message pagination.
|
- Added `PaginationParams.createdAtBefore` for message pagination.
|
||||||
- Added `PaginationParams.createdAtAround` for message pagination.
|
- Added `PaginationParams.createdAtAround` for message pagination.
|
||||||
- Added support for `channel.membership` and `channel.membershipStream` 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
|
🔄 Changed
|
||||||
|
|
||||||
- Deprecated `PaginationParams.before` and `PaginationParams.after`. Use `PaginationParams.limit` instead.
|
- Deprecated `PaginationParams.before` and `PaginationParams.after`. Use `PaginationParams.limit` instead.
|
||||||
|
|
||||||
## 4.1.0
|
## 4.1.0
|
||||||
|
|
||||||
|
|||||||
@@ -1552,6 +1552,8 @@ class ChannelClientState {
|
|||||||
|
|
||||||
_listenMemberRemoved();
|
_listenMemberRemoved();
|
||||||
|
|
||||||
|
_listenMemberUpdated();
|
||||||
|
|
||||||
_listenMemberBanned();
|
_listenMemberBanned();
|
||||||
|
|
||||||
_listenMemberUnbanned();
|
_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() {
|
void _listenChannelUpdated() {
|
||||||
_subscriptions.add(_channel.on(EventType.channelUpdated).listen((Event e) {
|
_subscriptions.add(_channel.on(EventType.channelUpdated).listen((Event e) {
|
||||||
final channel = e.channel!;
|
final channel = e.channel!;
|
||||||
|
|||||||
@@ -73,6 +73,9 @@ class EventType {
|
|||||||
/// Event sent when a member is removed to a channel
|
/// Event sent when a member is removed to a channel
|
||||||
static const String memberRemoved = 'member.removed';
|
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
|
/// Event sent when a member is removed to a channel
|
||||||
static const String userBanned = 'user.banned';
|
static const String userBanned = 'user.banned';
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user