From c0b80b84c602699d35f5a2b4d9cb03c8cfe12fcc Mon Sep 17 00:00:00 2001 From: Gordon Hayes Date: Fri, 20 Aug 2021 17:31:08 +0200 Subject: [PATCH 1/3] fix: add null checks on message text --- packages/stream_chat_flutter/lib/src/message_list_view.dart | 2 +- packages/stream_chat_flutter/lib/src/message_widget.dart | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/stream_chat_flutter/lib/src/message_list_view.dart b/packages/stream_chat_flutter/lib/src/message_list_view.dart index 75d45707..9400a984 100644 --- a/packages/stream_chat_flutter/lib/src/message_list_view.dart +++ b/packages/stream_chat_flutter/lib/src/message_list_view.dart @@ -984,7 +984,7 @@ class _MessageListViewState extends State { final showInChannelIndicator = !_isThreadConversation && isThreadMessage; final showThreadReplyIndicator = !_isThreadConversation && hasReplies; - final isOnlyEmoji = message.text!.isOnlyEmoji; + final isOnlyEmoji = message.text?.isOnlyEmoji ?? false; final hasUrlAttachment = message.attachments.any((it) => it.ogScrapeUrl != null) == true; diff --git a/packages/stream_chat_flutter/lib/src/message_widget.dart b/packages/stream_chat_flutter/lib/src/message_widget.dart index 19af5b2a..5bfa2b63 100644 --- a/packages/stream_chat_flutter/lib/src/message_widget.dart +++ b/packages/stream_chat_flutter/lib/src/message_widget.dart @@ -1258,7 +1258,7 @@ class _MessageWidgetState extends State ); Widget _buildTextBubble() { - if (widget.message.text!.trim().isEmpty) return const Offstage(); + if (widget.message.text?.trim().isEmpty ?? false) return const Offstage(); return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ From eb468edf826f69567c9cd7c5649e1c54bc4c03f9 Mon Sep 17 00:00:00 2001 From: Gordon Hayes Date: Fri, 20 Aug 2021 17:48:16 +0200 Subject: [PATCH 2/3] fix: add null checks to message text --- packages/stream_chat_flutter/lib/src/message_list_view.dart | 2 +- packages/stream_chat_flutter/lib/src/message_widget.dart | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/stream_chat_flutter/lib/src/message_list_view.dart b/packages/stream_chat_flutter/lib/src/message_list_view.dart index 9400a984..d5fc3671 100644 --- a/packages/stream_chat_flutter/lib/src/message_list_view.dart +++ b/packages/stream_chat_flutter/lib/src/message_list_view.dart @@ -845,7 +845,7 @@ class _MessageListViewState extends State { ) { final isMyMessage = message.user!.id == StreamChat.of(context).currentUser!.id; - final isOnlyEmoji = message.text!.isOnlyEmoji; + final isOnlyEmoji = message.text?.isOnlyEmoji ?? false; final currentUser = StreamChat.of(context).currentUser; final members = StreamChannel.of(context).channel.state?.members ?? []; final currentUserMember = diff --git a/packages/stream_chat_flutter/lib/src/message_widget.dart b/packages/stream_chat_flutter/lib/src/message_widget.dart index 5bfa2b63..ca1aa0bf 100644 --- a/packages/stream_chat_flutter/lib/src/message_widget.dart +++ b/packages/stream_chat_flutter/lib/src/message_widget.dart @@ -1048,7 +1048,7 @@ class _MessageWidgetState extends State messageWidget: widget.copyWith( key: const Key('MessageWidget'), message: widget.message.copyWith( - text: widget.message.text!.length > 200 + text: (widget.message.text?.length ?? 0) > 200 ? '${widget.message.text!.substring(0, 200)}...' : widget.message.text, ), @@ -1111,7 +1111,7 @@ class _MessageWidgetState extends State messageWidget: widget.copyWith( key: const Key('MessageWidget'), message: widget.message.copyWith( - text: widget.message.text!.length > 200 + text: (widget.message.text?.length ?? 0) > 200 ? '${widget.message.text!.substring(0, 200)}...' : widget.message.text, ), From 93ce9201a998c22315e306bd412f878ce955447b Mon Sep 17 00:00:00 2001 From: Gordon Hayes Date: Mon, 23 Aug 2021 09:54:19 +0200 Subject: [PATCH 3/3] docs: update CHANGELOG.md --- packages/stream_chat_flutter/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/stream_chat_flutter/CHANGELOG.md b/packages/stream_chat_flutter/CHANGELOG.md index acc93337..b2515712 100644 --- a/packages/stream_chat_flutter/CHANGELOG.md +++ b/packages/stream_chat_flutter/CHANGELOG.md @@ -49,6 +49,7 @@ breakdown: - Fixed `MessageInput` textField case where `input` is not enabled if the file picked from the camera is null. - Fixed date dividers position/alignment in non reversed `MessageListView`. +- Fixed null check errors when accessing `message.text` in `MessageWidget` and `MessageListView`; this occurred when sending a message with no text. ## 2.1.2