From 9b0fb58f1ed0245529c794914346ea77512eeeb6 Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Mon, 17 Jan 2022 17:07:08 +0100 Subject: [PATCH] add tld check --- .../lib/src/message_input/message_input.dart | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 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 fde57160..816a4aec 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 @@ -928,9 +928,7 @@ class MessageInputState extends State _actionsShrunk = value.isNotEmpty && actionsLength > 1; }); - if (channel.ownCapabilities.contains(PermissionType.sendLinks)) { - _checkContainsUrl(value, context); - } + _checkContainsUrl(value, context); _checkCommands(value, context); _checkMentions(value, context); _checkEmoji(value, context); @@ -971,7 +969,11 @@ class MessageInputState extends State ..removeWhere((it) => it.group(0)?.split('.').last.isValidTLD() == false); // Reset the og attachment if the text doesn't contain any url - if (matchedUrls.isEmpty) { + if (matchedUrls.isEmpty || + !StreamChannel.of(context) + .channel + .ownCapabilities + .contains(PermissionType.sendLinks)) { _effectiveController ..text = value ..clearOGAttachment(); @@ -1652,7 +1654,8 @@ class MessageInputState extends State var message = _effectiveController.value; if (!streamChannel.channel.ownCapabilities .contains(PermissionType.sendLinks) && - _urlRegex.hasMatch(message.text ?? '')) { + _urlRegex.allMatches(message.text ?? '').any((element) => + element.group(0)?.split('.').last.isValidTLD() == true)) { showInfoDialog( context, icon: StreamSvgIcon.error(