show error on channel loading
This commit is contained in:
+9
-12
@@ -2,18 +2,15 @@ import 'package:flutter/material.dart';
|
|||||||
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
|
import 'package:stream_chat_flutter/stream_chat_flutter.dart';
|
||||||
|
|
||||||
void main() async {
|
void main() async {
|
||||||
WidgetsFlutterBinding.ensureInitialized();
|
|
||||||
final client = Client(
|
final client = Client(
|
||||||
's2dxdhpxd94g',
|
's2dxdhpxd94g',
|
||||||
logLevel: Level.INFO,
|
logLevel: Level.INFO,
|
||||||
);
|
);
|
||||||
|
|
||||||
await client
|
await client.setUser(
|
||||||
.setUser(
|
User(id: 'super-band-9'),
|
||||||
User(id: 'super-band-9'),
|
'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoic3VwZXItYmFuZC05In0.0L6lGoeLwkz0aZRUcpZKsvaXtNEDHBcezVTZ0oPq40A',
|
||||||
'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoic3VwZXItYmFuZC05In0.0L6lGoeLwkz0aZRUcpZKsvaXtNEDHBcezVTZ0oPq40A',
|
);
|
||||||
)
|
|
||||||
.catchError((e) {});
|
|
||||||
|
|
||||||
runApp(MyApp(client));
|
runApp(MyApp(client));
|
||||||
}
|
}
|
||||||
@@ -44,11 +41,11 @@ class ChannelListPage extends StatelessWidget {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
body: ChannelListView(
|
body: ChannelListView(
|
||||||
filter: {
|
// filter: {
|
||||||
'members': {
|
// 'members': {
|
||||||
'\$in': [StreamChat.of(context).user.id],
|
// '\$in': [StreamChat.of(context).user.id],
|
||||||
}
|
// }
|
||||||
},
|
// },
|
||||||
sort: [SortOption('last_message_at')],
|
sort: [SortOption('last_message_at')],
|
||||||
pagination: PaginationParams(
|
pagination: PaginationParams(
|
||||||
limit: 20,
|
limit: 20,
|
||||||
|
|||||||
@@ -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.
|
/// If you now run the simulator you will see a single channel UI.
|
||||||
void main() async {
|
void main() async {
|
||||||
WidgetsFlutterBinding.ensureInitialized();
|
|
||||||
final client = Client(
|
final client = Client(
|
||||||
'b67pax5b2wdq',
|
'b67pax5b2wdq',
|
||||||
logLevel: Level.INFO,
|
logLevel: Level.INFO,
|
||||||
);
|
);
|
||||||
|
|
||||||
await client
|
await client.setUser(
|
||||||
.setUser(
|
User(id: 'falling-mountain-7'),
|
||||||
User(id: 'falling-mountain-7'),
|
'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiZmFsbGluZy1tb3VudGFpbi03In0.AKgRXHMQQMz6vJAKszXdY8zMFfsAgkoUeZHlI-Szz9E',
|
||||||
'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoiZmFsbGluZy1tb3VudGFpbi03In0.AKgRXHMQQMz6vJAKszXdY8zMFfsAgkoUeZHlI-Szz9E',
|
);
|
||||||
)
|
|
||||||
.catchError((e) {});
|
|
||||||
|
|
||||||
final channel = client.channel('messaging', id: 'godevs');
|
final channel = client.channel('messaging', id: 'godevs');
|
||||||
|
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ class _ChannelListViewState extends State<ChannelListView> {
|
|||||||
return widget.errorBuilder(snapshot.error);
|
return widget.errorBuilder(snapshot.error);
|
||||||
}
|
}
|
||||||
|
|
||||||
String message = snapshot.error.toString();
|
var message = snapshot.error.toString();
|
||||||
if (snapshot.error is DioError) {
|
if (snapshot.error is DioError) {
|
||||||
final dioError = snapshot.error as DioError;
|
final dioError = snapshot.error as DioError;
|
||||||
if (dioError.type == DioErrorType.RESPONSE) {
|
if (dioError.type == DioErrorType.RESPONSE) {
|
||||||
@@ -287,6 +287,17 @@ class _ChannelListViewState extends State<ChannelListView> {
|
|||||||
stream: streamChat.queryChannelsLoading,
|
stream: streamChat.queryChannelsLoading,
|
||||||
initialData: false,
|
initialData: false,
|
||||||
builder: (context, snapshot) {
|
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(
|
return Container(
|
||||||
height: 100,
|
height: 100,
|
||||||
padding: EdgeInsets.all(32),
|
padding: EdgeInsets.all(32),
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ class ChannelPreview extends StatelessWidget {
|
|||||||
return SizedBox();
|
return SizedBox();
|
||||||
}
|
}
|
||||||
|
|
||||||
String text = lastMessage.text;
|
var text = lastMessage.text;
|
||||||
if (lastMessage.isDeleted) {
|
if (lastMessage.isDeleted) {
|
||||||
text = 'This message was deleted.';
|
text = 'This message was deleted.';
|
||||||
} else if (lastMessage.attachments != null) {
|
} else if (lastMessage.attachments != null) {
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ class _MessageWidgetState extends State<MessageWidget>
|
|||||||
final alignment =
|
final alignment =
|
||||||
_isMyMessage ? Alignment.centerRight : Alignment.centerLeft;
|
_isMyMessage ? Alignment.centerRight : Alignment.centerLeft;
|
||||||
|
|
||||||
List<Widget> row = <Widget>[
|
var row = List<Widget>.from([
|
||||||
Column(
|
Column(
|
||||||
crossAxisAlignment:
|
crossAxisAlignment:
|
||||||
_isMyMessage ? CrossAxisAlignment.end : CrossAxisAlignment.start,
|
_isMyMessage ? CrossAxisAlignment.end : CrossAxisAlignment.start,
|
||||||
@@ -113,7 +113,7 @@ class _MessageWidgetState extends State<MessageWidget>
|
|||||||
width: 40,
|
width: 40,
|
||||||
)
|
)
|
||||||
: _buildUserAvatar(),
|
: _buildUserAvatar(),
|
||||||
];
|
]);
|
||||||
|
|
||||||
if (!_isMyMessage) {
|
if (!_isMyMessage) {
|
||||||
row = row.reversed.toList();
|
row = row.reversed.toList();
|
||||||
@@ -309,7 +309,7 @@ class _MessageWidgetState extends State<MessageWidget>
|
|||||||
[]);
|
[]);
|
||||||
|
|
||||||
if (widget.message.text.trim().isNotEmpty) {
|
if (widget.message.text.trim().isNotEmpty) {
|
||||||
String text = widget.message.text;
|
var text = widget.message.text;
|
||||||
text = _replaceMentions(text);
|
text = _replaceMentions(text);
|
||||||
|
|
||||||
column.addAll(
|
column.addAll(
|
||||||
|
|||||||
@@ -197,20 +197,23 @@ class StreamChatState extends State<StreamChat> {
|
|||||||
PaginationParams paginationParams,
|
PaginationParams paginationParams,
|
||||||
Map<String, dynamic> options,
|
Map<String, dynamic> options,
|
||||||
}) async {
|
}) async {
|
||||||
if (_queryChannelsLoadingController.value) {
|
if (_queryChannelsLoadingController.value == true) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
_queryChannelsLoadingController.sink.add(true);
|
_queryChannelsLoadingController.sink.add(true);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
widget.client.queryChannels(
|
await widget.client.queryChannels(
|
||||||
filter: filter,
|
filter: filter,
|
||||||
sort: sortOptions,
|
sort: sortOptions,
|
||||||
options: options,
|
options: options,
|
||||||
paginationParams: paginationParams,
|
paginationParams: paginationParams,
|
||||||
);
|
);
|
||||||
} finally {
|
|
||||||
_queryChannelsLoadingController.sink.add(false);
|
_queryChannelsLoadingController.sink.add(false);
|
||||||
|
} catch (err, stackTrace) {
|
||||||
|
_queryChannelsLoadingController.addError(err, stackTrace);
|
||||||
|
} finally {
|
||||||
|
// _queryChannelsLoadingController.sink.add(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user