diff --git a/example/lib/main.dart b/example/lib/main.dart index d41c3f4a..51784e02 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -78,6 +78,19 @@ void main() async { 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoic3VwZXItYmFuZC05In0.0L6lGoeLwkz0aZRUcpZKsvaXtNEDHBcezVTZ0oPq40A', ); +// final client = Client( +// 'qk4nn7rpcn75', +// logLevel: Level.INFO, +// showLocalNotification: Platform.isAndroid ? showLocalNotification : null, +// persistenceEnabled: true, +// baseURL: '127.0.0.1:3030', +// ); +// +// await client.setUser( +// User(id: 'super-band-9'), +// 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoic3VwZXItdHJhbXAtOSJ9.BbcxsR3FsK9c1q1ijhbBWvlXRwRpZ1RoHMKscKWZklk', +// ); + _initNotifications(client); runApp(MyApp(client)); diff --git a/lib/src/channels_bloc.dart b/lib/src/channels_bloc.dart index 6acb04cc..a58759ab 100644 --- a/lib/src/channels_bloc.dart +++ b/lib/src/channels_bloc.dart @@ -125,7 +125,20 @@ class ChannelsBlocState extends State _subscriptions.add(client.on(EventType.channelDeleted).listen((e) { final channel = e.channel; _channelsController - .add(channels..removeWhere((c) => c.cid == channel.cid)); + .add(List.from(channels..removeWhere((c) => c.cid == channel.cid))); + })); + + _subscriptions + .add(client.on(EventType.notificationAddedToChannel).listen((e) async { + final channelModel = e.channel; + final channel = Channel( + client, + channelModel.type, + channelModel.id, + channelModel.extraData, + ); + await channel.watch(); + _channelsController.add(List.from(channels..insert(0, channel))); })); } diff --git a/lib/src/stream_channel.dart b/lib/src/stream_channel.dart index 1f4edf30..62775281 100644 --- a/lib/src/stream_channel.dart +++ b/lib/src/stream_channel.dart @@ -149,14 +149,18 @@ class StreamChannelState extends State { initialData: widget.channel.state != null, builder: (context, snapshot) { if (!snapshot.hasData || !snapshot.data) { - return Scaffold( - body: Center( + return Container( + height: 30, + child: Center( child: CircularProgressIndicator(), ), ); } else if (snapshot.hasError) { - return Center( - child: Text(snapshot.error), + return Container( + height: 30, + child: Center( + child: Text(snapshot.error), + ), ); } else { return widget.child;