add update message

This commit is contained in:
Salvatore Giordano
2020-03-11 15:42:29 +01:00
parent 44507d51ed
commit 54f1901620
4 changed files with 27 additions and 11 deletions
-1
View File
@@ -106,7 +106,6 @@ class _ChannelListViewState extends State<ChannelListView> {
final streamChat = StreamChat.of(context); final streamChat = StreamChat.of(context);
return RefreshIndicator( return RefreshIndicator(
onRefresh: () async { onRefresh: () async {
streamChat.clearChannels();
return streamChat.queryChannels( return streamChat.queryChannels(
filter: widget.filter, filter: widget.filter,
sortOptions: widget.sort, sortOptions: widget.sort,
+4 -1
View File
@@ -664,7 +664,10 @@ class _MessageInputState extends State<MessageInput> {
sendingFuture = channel.sendMessage(message); sendingFuture = channel.sendMessage(message);
} }
sendingFuture = StreamChat.of(context).client.updateMessage(message); sendingFuture = StreamChat.of(context).client.updateMessage(
message,
channel.cid,
);
} else { } else {
message = Message( message = Message(
parentId: widget.parentMessage?.id, parentId: widget.parentMessage?.id,
+23 -4
View File
@@ -161,7 +161,8 @@ class _MessageWidgetState extends State<MessageWidget>
), ),
), ),
if (_isMyMessage && if (_isMyMessage &&
widget.message.status == MessageSendingStatus.SENDING) (widget.message.status == MessageSendingStatus.SENDING ||
widget.message.status == MessageSendingStatus.UPDATING))
Padding( Padding(
padding: const EdgeInsets.symmetric( padding: const EdgeInsets.symmetric(
horizontal: 1.0, horizontal: 1.0,
@@ -177,7 +178,8 @@ class _MessageWidgetState extends State<MessageWidget>
), ),
), ),
if (_isMyMessage && if (_isMyMessage &&
widget.message.status == MessageSendingStatus.FAILED) (widget.message.status == MessageSendingStatus.FAILED ||
widget.message.status == MessageSendingStatus.FAILED_UPDATE))
Padding( Padding(
padding: const EdgeInsets.symmetric( padding: const EdgeInsets.symmetric(
horizontal: 1.0, horizontal: 1.0,
@@ -372,8 +374,16 @@ class _MessageWidgetState extends State<MessageWidget>
), ),
), ),
onTap: () { onTap: () {
final channel = StreamChannel.of(context).channel;
if (widget.message.status == MessageSendingStatus.FAILED) { if (widget.message.status == MessageSendingStatus.FAILED) {
StreamChannel.of(context).channel.sendMessage(widget.message); channel.sendMessage(widget.message);
return;
}
if (widget.message.status == MessageSendingStatus.FAILED_UPDATE) {
StreamChat.of(context).client.updateMessage(
widget.message,
channel.cid,
);
return; return;
} }
}, },
@@ -466,6 +476,14 @@ class _MessageWidgetState extends State<MessageWidget>
fontSize: 11, fontSize: 11,
), ),
), ),
if (widget.message.status == MessageSendingStatus.FAILED_UPDATE)
Text(
'MESSAGE UPDATE FAILED · CLICK TO TRY AGAIN',
style: _messageTheme.messageText.copyWith(
color: Colors.black.withOpacity(.5),
fontSize: 11,
),
),
MarkdownBody( MarkdownBody(
data: text, data: text,
onTapLink: (link) { onTapLink: (link) {
@@ -989,7 +1007,8 @@ class _MessageWidgetState extends State<MessageWidget>
topRight: Radius.circular((_isMyMessage && rectBorders) ? 2 : 16), topRight: Radius.circular((_isMyMessage && rectBorders) ? 2 : 16),
bottomRight: Radius.circular(_isMyMessage ? 2 : 16), bottomRight: Radius.circular(_isMyMessage ? 2 : 16),
), ),
color: widget.message.status == MessageSendingStatus.FAILED color: (widget.message.status == MessageSendingStatus.FAILED ||
widget.message.status == MessageSendingStatus.FAILED_UPDATE)
? Color(0xffd0021B).withAlpha(26) ? Color(0xffd0021B).withAlpha(26)
: _messageTheme.messageBackgroundColor, : _messageTheme.messageBackgroundColor,
); );
-5
View File
@@ -214,11 +214,6 @@ class StreamChatState extends State<StreamChat> {
} }
} }
/// Clear the current channel list
void clearChannels() {
channels.clear();
}
@override @override
void dispose() { void dispose() {
widget.client.dispose(); widget.client.dispose();