From 4305e95394fe628a591abe32ce57791794e611a3 Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Wed, 4 Mar 2020 18:04:06 +0100 Subject: [PATCH] add example of showing error --- lib/src/message_input.dart | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/lib/src/message_input.dart b/lib/src/message_input.dart index 7da053fe..fb986abb 100644 --- a/lib/src/message_input.dart +++ b/lib/src/message_input.dart @@ -646,8 +646,10 @@ class _MessageInputState extends State { FocusScope.of(context).unfocus(); + Future sendingFuture; + Message message; if (widget.editMessage != null) { - final message = widget.editMessage.copyWith( + message = widget.editMessage.copyWith( parentId: widget.parentMessage?.id, text: text, attachments: widget.editMessage.attachments @@ -657,25 +659,29 @@ class _MessageInputState extends State { mentionedUsers: _mentionedUsers.where((u) => text.contains('@${u.name}')).toList(), ); - StreamChat.of(context).client.updateMessage(message).then((_) { - if (widget.onMessageSent != null) { - widget.onMessageSent(message); - } - }); + sendingFuture = StreamChat.of(context).client.updateMessage(message); } else { - final message = Message( + message = Message( parentId: widget.parentMessage?.id, text: text, attachments: _getAttachments(attachments).toList(), mentionedUsers: _mentionedUsers.where((u) => text.contains('@${u.name}')).toList(), ); - StreamChannel.of(context).channel.sendMessage(message).then((_) { - if (widget.onMessageSent != null) { - widget.onMessageSent(message); - } - }); + sendingFuture = StreamChannel.of(context).channel.sendMessage(message); } + + sendingFuture.then((_) { + if (widget.onMessageSent != null) { + widget.onMessageSent(message); + } + }).catchError((error) { + Scaffold.of(context).showSnackBar( + SnackBar( + content: Text(error.toString()), + ), + ); + }); } Iterable _getAttachments(List<_SendingAttachment> attachments) {