diff --git a/packages/stream_chat_flutter/CHANGELOG.md b/packages/stream_chat_flutter/CHANGELOG.md index 31a56f95..c5c8ad7e 100644 --- a/packages/stream_chat_flutter/CHANGELOG.md +++ b/packages/stream_chat_flutter/CHANGELOG.md @@ -4,6 +4,9 @@ - [[#1546]](https://github.com/GetStream/stream-chat-flutter/issues/1546) Fixed `StreamMessageInputTheme.linkHighlightColor` returning null for default theme. +- [[#1548]](https://github.com/GetStream/stream-chat-flutter/issues/1548) Fixed `StreamMessageInput` urlRegex only + matching the + lowercase `http(s)|ftp`. ## 6.1.0 diff --git a/packages/stream_chat_flutter/lib/src/message_input/stream_message_input.dart b/packages/stream_chat_flutter/lib/src/message_input/stream_message_input.dart index 72453576..109ef27e 100644 --- a/packages/stream_chat_flutter/lib/src/message_input/stream_message_input.dart +++ b/packages/stream_chat_flutter/lib/src/message_input/stream_message_input.dart @@ -1042,6 +1042,7 @@ class StreamMessageInputState extends State CancelableOperation? _enrichUrlOperation; final _urlRegex = RegExp( r'(?:(?:https?|ftp):\/\/)?[\w/\-?=%.]+\.[\w/\-?=%.]+', + caseSensitive: false, ); void _checkContainsUrl(String value, BuildContext context) async { diff --git a/packages/stream_chat_flutter_core/CHANGELOG.md b/packages/stream_chat_flutter_core/CHANGELOG.md index 3359bf8c..05e6adfa 100644 --- a/packages/stream_chat_flutter_core/CHANGELOG.md +++ b/packages/stream_chat_flutter_core/CHANGELOG.md @@ -1,3 +1,7 @@ +## Upcoming + +- Fixed `StreamMessageInputController.textPatternStyle` not matching case-insensitive patterns. + ## 6.1.0 - Updated `dart` sdk environment range to support `3.0.0`. diff --git a/packages/stream_chat_flutter_core/lib/src/message_text_field_controller.dart b/packages/stream_chat_flutter_core/lib/src/message_text_field_controller.dart index ff5c03a4..ae730c06 100644 --- a/packages/stream_chat_flutter_core/lib/src/message_text_field_controller.dart +++ b/packages/stream_chat_flutter_core/lib/src/message_text_field_controller.dart @@ -41,7 +41,10 @@ class MessageTextFieldController extends TextEditingController { } return TextSpan(text: text, style: style).splitMapJoin( - RegExp(pattern.keys.map((it) => it.pattern).join('|')), + RegExp( + pattern.keys.map((it) => it.pattern).join('|'), + caseSensitive: false, + ), onMatch: (match) { final text = match[0]!; final key = pattern.keys.firstWhere((it) => it.hasMatch(text));