From 599c824fc08deb6a5f80258adf2bd3af84c30d0d Mon Sep 17 00:00:00 2001 From: Sahil Kumar Date: Wed, 29 Sep 2021 17:06:11 +0530 Subject: [PATCH] fix(ui): fix early command check Signed-off-by: xsahil03x --- .../lib/src/message_input.dart | 24 +++++-------------- 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/packages/stream_chat_flutter/lib/src/message_input.dart b/packages/stream_chat_flutter/lib/src/message_input.dart index 95322c10..73a211ff 100644 --- a/packages/stream_chat_flutter/lib/src/message_input.dart +++ b/packages/stream_chat_flutter/lib/src/message_input.dart @@ -2,6 +2,7 @@ import 'dart:async'; import 'dart:math'; import 'package:cached_network_image/cached_network_image.dart'; +import 'package:collection/collection.dart'; import 'package:file_picker/file_picker.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/foundation.dart'; @@ -878,24 +879,11 @@ class MessageInputState extends State { void _checkCommands(String s, BuildContext context) { if (s.startsWith('/')) { - final matchedCommandsList = StreamChannel.of(context) - .channel - .config - ?.commands - .where((element) => element.name == s.substring(1)) - .toList() ?? - []; - - if (matchedCommandsList.length == 1) { - _chosenCommand = matchedCommandsList[0]; - textEditingController.clear(); - - if (_showCommandsOverlay) { - setState(() { - _commandEnabled = true; - _showCommandsOverlay = false; - }); - } + final allCommands = StreamChannel.of(context).channel.config?.commands; + final command = + allCommands?.firstWhereOrNull((it) => it.name == s.substring(1)); + if (command != null) { + return _setCommand(command); } else if (!_showCommandsOverlay) { setState(() { _showCommandsOverlay = true;