Skip to content

Commit fb97b15

Browse files
committed
store: Update streams and subscriptions on stream-create/delete events
Fixes: zulip#181 Related: zulip#182
1 parent 13cd6c2 commit fb97b15

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

lib/model/store.dart

+13
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,19 @@ class PerAccountStore extends ChangeNotifier {
239239
}
240240
autocompleteViewManager.handleRealmUserUpdateEvent(event);
241241
notifyListeners();
242+
} else if (event is StreamCreateEvent) {
243+
assert(debugLog("server event: stream/create"));
244+
streams.addEntries(event.streams.map((stream) => MapEntry(stream.streamId, stream)));
245+
// (Don't touch `subscriptions`. If the user is subscribed to the stream,
246+
// details will come in a later `subscription` event.)
247+
notifyListeners();
248+
} else if (event is StreamDeleteEvent) {
249+
assert(debugLog("server event: stream/delete"));
250+
for (final stream in event.streams) {
251+
streams.remove(stream.streamId);
252+
subscriptions.remove(stream.streamId);
253+
}
254+
notifyListeners();
242255
} else if (event is MessageEvent) {
243256
assert(debugLog("server event: message ${jsonEncode(event.message.toJson())}"));
244257
for (final view in _messageListViews) {

0 commit comments

Comments
 (0)