diff --git a/example/lib/main.dart b/example/lib/main.dart index a22b3eed..041668c6 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -2,18 +2,15 @@ import 'package:flutter/material.dart'; import 'package:stream_chat_flutter/stream_chat_flutter.dart'; void main() async { - WidgetsFlutterBinding.ensureInitialized(); final client = Client( 's2dxdhpxd94g', logLevel: Level.INFO, ); - await client - .setUser( - User(id: 'super-band-9'), - 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoic3VwZXItYmFuZC05In0.0L6lGoeLwkz0aZRUcpZKsvaXtNEDHBcezVTZ0oPq40A', - ) - .catchError((e) {}); + await client.setUser( + User(id: 'super-band-9'), + 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoic3VwZXItYmFuZC05In0.0L6lGoeLwkz0aZRUcpZKsvaXtNEDHBcezVTZ0oPq40A', + ); runApp(MyApp(client)); } @@ -44,11 +41,11 @@ class ChannelListPage extends StatelessWidget { Widget build(BuildContext context) { return Scaffold( body: ChannelListView( - filter: { - 'members': { - '\$in': [StreamChat.of(context).user.id], - } - }, +// filter: { +// 'members': { +// '\$in': [StreamChat.of(context).user.id], +// } +// }, sort: [SortOption('last_message_at')], pagination: PaginationParams( limit: 20, diff --git a/example/lib/single_conversation.dart b/example/lib/single_conversation.dart index 785c02f2..a7863fc0 100644 --- a/example/lib/single_conversation.dart +++ b/example/lib/single_conversation.dart @@ -25,18 +25,15 @@ import 'package:stream_chat_flutter/stream_chat_flutter.dart'; /// /// If you now run the simulator you will see a single channel UI. void main() async { - WidgetsFlutterBinding.ensureInitialized(); final client = Client( 'b67pax5b2wdq', logLevel: Level.INFO, ); - await client - .setUser( - User(id: 'falling-mountain-7'), - 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiZmFsbGluZy1tb3VudGFpbi03In0.AKgRXHMQQMz6vJAKszXdY8zMFfsAgkoUeZHlI-Szz9E', - ) - .catchError((e) {}); + await client.setUser( + User(id: 'falling-mountain-7'), + 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiZmFsbGluZy1tb3VudGFpbi03In0.AKgRXHMQQMz6vJAKszXdY8zMFfsAgkoUeZHlI-Szz9E', + ); final channel = client.channel('messaging', id: 'godevs'); diff --git a/lib/src/channel_list_view.dart b/lib/src/channel_list_view.dart index 7272f851..41a5bd76 100644 --- a/lib/src/channel_list_view.dart +++ b/lib/src/channel_list_view.dart @@ -125,7 +125,7 @@ class _ChannelListViewState extends State { return widget.errorBuilder(snapshot.error); } - String message = snapshot.error.toString(); + var message = snapshot.error.toString(); if (snapshot.error is DioError) { final dioError = snapshot.error as DioError; if (dioError.type == DioErrorType.RESPONSE) { @@ -287,6 +287,17 @@ class _ChannelListViewState extends State { stream: streamChat.queryChannelsLoading, initialData: false, builder: (context, snapshot) { + if (snapshot.hasError) { + return Container( + color: Color(0xffd0021B).withAlpha(26), + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 16.0), + child: Center( + child: Text('Error loading messages'), + ), + ), + ); + } return Container( height: 100, padding: EdgeInsets.all(32), diff --git a/lib/src/channel_preview.dart b/lib/src/channel_preview.dart index e6d7340a..cfdb3ea5 100644 --- a/lib/src/channel_preview.dart +++ b/lib/src/channel_preview.dart @@ -118,7 +118,7 @@ class ChannelPreview extends StatelessWidget { return SizedBox(); } - String text = lastMessage.text; + var text = lastMessage.text; if (lastMessage.isDeleted) { text = 'This message was deleted.'; } else if (lastMessage.attachments != null) { diff --git a/lib/src/message_widget.dart b/lib/src/message_widget.dart index 95cab99d..48a1d1f2 100644 --- a/lib/src/message_widget.dart +++ b/lib/src/message_widget.dart @@ -95,7 +95,7 @@ class _MessageWidgetState extends State final alignment = _isMyMessage ? Alignment.centerRight : Alignment.centerLeft; - List row = [ + var row = List.from([ Column( crossAxisAlignment: _isMyMessage ? CrossAxisAlignment.end : CrossAxisAlignment.start, @@ -113,7 +113,7 @@ class _MessageWidgetState extends State width: 40, ) : _buildUserAvatar(), - ]; + ]); if (!_isMyMessage) { row = row.reversed.toList(); @@ -309,7 +309,7 @@ class _MessageWidgetState extends State []); if (widget.message.text.trim().isNotEmpty) { - String text = widget.message.text; + var text = widget.message.text; text = _replaceMentions(text); column.addAll( diff --git a/lib/src/stream_chat.dart b/lib/src/stream_chat.dart index a70a4506..e18de6d0 100644 --- a/lib/src/stream_chat.dart +++ b/lib/src/stream_chat.dart @@ -197,20 +197,23 @@ class StreamChatState extends State { PaginationParams paginationParams, Map options, }) async { - if (_queryChannelsLoadingController.value) { + if (_queryChannelsLoadingController.value == true) { return; } _queryChannelsLoadingController.sink.add(true); try { - widget.client.queryChannels( + await widget.client.queryChannels( filter: filter, sort: sortOptions, options: options, paginationParams: paginationParams, ); - } finally { _queryChannelsLoadingController.sink.add(false); + } catch (err, stackTrace) { + _queryChannelsLoadingController.addError(err, stackTrace); + } finally { +// _queryChannelsLoadingController.sink.add(false); } }