From d59a755f7ceb8f4fd00eb328882a8695b20a5627 Mon Sep 17 00:00:00 2001 From: Ayush Shekhar Date: Mon, 21 Mar 2022 14:34:21 +0530 Subject: [PATCH] Add flag to control if default emoji suggestions overlay is visible --- .../lib/src/message_input/message_input.dart | 33 ++++++++++++------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/packages/stream_chat_flutter/lib/src/message_input/message_input.dart b/packages/stream_chat_flutter/lib/src/message_input/message_input.dart index 7116e435..8cd525c1 100644 --- a/packages/stream_chat_flutter/lib/src/message_input/message_input.dart +++ b/packages/stream_chat_flutter/lib/src/message_input/message_input.dart @@ -214,6 +214,7 @@ class StreamMessageInput extends StatefulWidget { this.elevation, this.shadow, this.autoCorrect, + this.disableEmojiSuggestionsOverlay, }) : super(key: key); /// List of options for showing overlays. @@ -337,6 +338,10 @@ class StreamMessageInput extends StatefulWidget { /// autoCorrect is enabled by default final bool? autoCorrect; + /// Disable the default emoji suggestions + /// Enabled by default + final bool? disableEmojiSuggestionsOverlay; + static bool _defaultValidator(Message message) => message.text?.isNotEmpty == true || message.attachments.isNotEmpty; @@ -370,6 +375,9 @@ class StreamMessageInputState extends State bool get _autoCorrect => widget.autoCorrect ?? true; + bool get _disableEmojiSuggestionsOverlay => + widget.disableEmojiSuggestionsOverlay ?? false; + RestorableMessageInputController? _controller; MessageInputController get _effectiveController => @@ -599,18 +607,19 @@ class StreamMessageInputState extends State visible: _showCommandsOverlay, widget: _buildCommandsOverlayEntry(), ), - OverlayOptions( - visible: _focusNode.hasFocus && - _effectiveController.text.isNotEmpty && - _effectiveController.baseOffset > 0 && - _effectiveController.text - .substring( - 0, - _effectiveController.baseOffset, - ) - .contains(':'), - widget: _buildEmojiOverlay(), - ), + if (!_disableEmojiSuggestionsOverlay) + OverlayOptions( + visible: _focusNode.hasFocus && + _effectiveController.text.isNotEmpty && + _effectiveController.baseOffset > 0 && + _effectiveController.text + .substring( + 0, + _effectiveController.baseOffset, + ) + .contains(':'), + widget: _buildEmojiOverlay(), + ), OverlayOptions( visible: _showMentionsOverlay, widget: _buildMentionsOverlayEntry(),