Adding start/stop watching event
This commit is contained in:
@@ -1754,6 +1754,26 @@ class ChannelClientState {
|
||||
));
|
||||
}
|
||||
|
||||
void _listenUserStartWatching() {
|
||||
_subscriptions.add(
|
||||
_channel.on(EventType.userWatchingStart).listen((event) {
|
||||
if (event.user != null) {
|
||||
_incrementWatcher(event.user!);
|
||||
}
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
void _listenUserStopWatching() {
|
||||
_subscriptions.add(
|
||||
_channel.on(EventType.userWatchingStop).listen((event) {
|
||||
if (event.user != null) {
|
||||
channelState.watchers?.remove(event.user);
|
||||
}
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
void _listenMemberUnbanned() {
|
||||
_subscriptions.add(_channel
|
||||
.on(EventType.userUnbanned)
|
||||
@@ -1770,6 +1790,19 @@ class ChannelClientState {
|
||||
));
|
||||
}
|
||||
|
||||
void _incrementWatcher(User user) {
|
||||
List<User> newWatchers;
|
||||
|
||||
if (channelState.watchers == null) {
|
||||
channelState.watchers!.add(user);
|
||||
newWatchers = channelState.watchers!;
|
||||
} else {
|
||||
newWatchers = [user];
|
||||
}
|
||||
|
||||
channelState.copyWith(watchers: newWatchers);
|
||||
}
|
||||
|
||||
void _updateMember(Member member) {
|
||||
final currentMembers = [...members];
|
||||
final memberIndex = currentMembers.indexWhere(
|
||||
|
||||
@@ -36,6 +36,12 @@ class EventType {
|
||||
/// Event sent when updating a message
|
||||
static const String messageUpdated = 'message.updated';
|
||||
|
||||
/// Event sent when a user starts watching a channel
|
||||
static const String userWatchingStart = 'user.watching.start';
|
||||
|
||||
/// Event sent when a user stops watching a channel
|
||||
static const String userWatchingStop = 'user.watching.stop';
|
||||
|
||||
/// Event sent when reading a message
|
||||
static const String messageRead = 'message.read';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user