Adding start/stop watching event

This commit is contained in:
Leandro Borges Ferreira
2023-01-30 17:59:39 +01:00
parent 4563abaaef
commit 1782eb3bea
2 changed files with 39 additions and 0 deletions
@@ -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';