From d9f26420841c7021b4895b84a2a20bbecf68e4bc Mon Sep 17 00:00:00 2001 From: geweald Date: Thu, 25 May 2023 13:55:58 +0200 Subject: [PATCH 1/4] fix(ui): autocomplete clicks on web --- packages/stream_chat_flutter/CHANGELOG.md | 1 + .../stream_chat_flutter/example/pubspec.yaml | 2 +- .../src/autocomplete/stream_autocomplete.dart | 52 ++++++++++--------- 3 files changed, 29 insertions(+), 26 deletions(-) diff --git a/packages/stream_chat_flutter/CHANGELOG.md b/packages/stream_chat_flutter/CHANGELOG.md index 0ebd05ae..56dcf759 100644 --- a/packages/stream_chat_flutter/CHANGELOG.md +++ b/packages/stream_chat_flutter/CHANGELOG.md @@ -20,6 +20,7 @@ for `WebOrDesktopAttachmentPickerOption` in `StreamMessageInput`. - [[#1250]](https://github.com/GetStream/stream-chat-flutter/issues/1250) Fixed bottomRow widgetSpans getting resized twice when `textScaling` is enabled. +- [[#1498]]() Fixed mentioning on some platforms. ✅ Added diff --git a/packages/stream_chat_flutter/example/pubspec.yaml b/packages/stream_chat_flutter/example/pubspec.yaml index defb7257..7e051f96 100644 --- a/packages/stream_chat_flutter/example/pubspec.yaml +++ b/packages/stream_chat_flutter/example/pubspec.yaml @@ -28,7 +28,7 @@ dependencies: cupertino_icons: ^1.0.4 flutter: sdk: flutter - responsive_builder: ^0.6.4 + responsive_builder: ^0.7.0 stream_chat_flutter: path: ../ stream_chat_localizations: diff --git a/packages/stream_chat_flutter/lib/src/autocomplete/stream_autocomplete.dart b/packages/stream_chat_flutter/lib/src/autocomplete/stream_autocomplete.dart index ea9338d0..4bf6a085 100644 --- a/packages/stream_chat_flutter/lib/src/autocomplete/stream_autocomplete.dart +++ b/packages/stream_chat_flutter/lib/src/autocomplete/stream_autocomplete.dart @@ -610,32 +610,34 @@ class StreamAutocompleteOptions extends StatelessWidget { Widget build(BuildContext context) { final height = MediaQuery.of(context).size.height; final colorTheme = StreamChatTheme.of(context).colorTheme; - return Card( - margin: margin, - elevation: elevation, - color: color ?? colorTheme.barsBg, - shape: shape, - clipBehavior: clipBehavior, - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - if (headerBuilder != null) ...[ - headerBuilder!(context), - const Divider(height: 0), - ], - LimitedBox( - maxHeight: maxHeight ?? height * 0.5, - child: ListView.builder( - shrinkWrap: true, - padding: EdgeInsets.zero, - itemCount: options.length, - itemBuilder: (context, index) { - final option = options.elementAt(index); - return optionBuilder(context, option); - }, + return TextFieldTapRegion( + child: Card( + margin: margin, + elevation: elevation, + color: color ?? colorTheme.barsBg, + shape: shape, + clipBehavior: clipBehavior, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + if (headerBuilder != null) ...[ + headerBuilder!(context), + const Divider(height: 0), + ], + LimitedBox( + maxHeight: maxHeight ?? height * 0.5, + child: ListView.builder( + shrinkWrap: true, + padding: EdgeInsets.zero, + itemCount: options.length, + itemBuilder: (context, index) { + final option = options.elementAt(index); + return optionBuilder(context, option); + }, + ), ), - ), - ], + ], + ), ), ); } From 31af0987094e55386596458bf8ddbf0322e96a00 Mon Sep 17 00:00:00 2001 From: Sahil Kumar Date: Thu, 25 May 2023 17:36:05 +0530 Subject: [PATCH 2/4] Update packages/stream_chat_flutter/CHANGELOG.md --- packages/stream_chat_flutter/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/stream_chat_flutter/CHANGELOG.md b/packages/stream_chat_flutter/CHANGELOG.md index 56dcf759..706d6f57 100644 --- a/packages/stream_chat_flutter/CHANGELOG.md +++ b/packages/stream_chat_flutter/CHANGELOG.md @@ -20,7 +20,7 @@ for `WebOrDesktopAttachmentPickerOption` in `StreamMessageInput`. - [[#1250]](https://github.com/GetStream/stream-chat-flutter/issues/1250) Fixed bottomRow widgetSpans getting resized twice when `textScaling` is enabled. -- [[#1498]]() Fixed mentioning on some platforms. +- [[#1498]](https://github.com/GetStream/stream-chat-flutter/issues/1498) Fixed `MessageInput` autocomplete not working on non-mobile platforms. ✅ Added From e46be5d8ae43cf85b4afd91ba810542a889d2ca1 Mon Sep 17 00:00:00 2001 From: geweald Date: Thu, 25 May 2023 14:15:30 +0200 Subject: [PATCH 3/4] fix(ui): move tap region to wrap autocomplete optionsViewBuilder --- .../src/autocomplete/stream_autocomplete.dart | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/packages/stream_chat_flutter/lib/src/autocomplete/stream_autocomplete.dart b/packages/stream_chat_flutter/lib/src/autocomplete/stream_autocomplete.dart index 4bf6a085..3e79fe32 100644 --- a/packages/stream_chat_flutter/lib/src/autocomplete/stream_autocomplete.dart +++ b/packages/stream_chat_flutter/lib/src/autocomplete/stream_autocomplete.dart @@ -507,11 +507,13 @@ class _StreamAutocompleteState extends State { final anchor = widget.optionsAlignment._toAnchor(); final shouldShowOptions = _shouldShowOptions; final optionViewBuilder = shouldShowOptions - ? _currentTrigger!.optionsViewBuilder( - context, - _currentQuery!, - _messageEditingController, - ) + ? TextFieldTapRegion( + child: _currentTrigger!.optionsViewBuilder( + context, + _currentQuery!, + _messageEditingController, + ), + ) : null; return PortalTarget( @@ -610,34 +612,32 @@ class StreamAutocompleteOptions extends StatelessWidget { Widget build(BuildContext context) { final height = MediaQuery.of(context).size.height; final colorTheme = StreamChatTheme.of(context).colorTheme; - return TextFieldTapRegion( - child: Card( - margin: margin, - elevation: elevation, - color: color ?? colorTheme.barsBg, - shape: shape, - clipBehavior: clipBehavior, - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - if (headerBuilder != null) ...[ - headerBuilder!(context), - const Divider(height: 0), - ], - LimitedBox( - maxHeight: maxHeight ?? height * 0.5, - child: ListView.builder( - shrinkWrap: true, - padding: EdgeInsets.zero, - itemCount: options.length, - itemBuilder: (context, index) { - final option = options.elementAt(index); - return optionBuilder(context, option); - }, - ), - ), + return Card( + margin: margin, + elevation: elevation, + color: color ?? colorTheme.barsBg, + shape: shape, + clipBehavior: clipBehavior, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + if (headerBuilder != null) ...[ + headerBuilder!(context), + const Divider(height: 0), ], - ), + LimitedBox( + maxHeight: maxHeight ?? height * 0.5, + child: ListView.builder( + shrinkWrap: true, + padding: EdgeInsets.zero, + itemCount: options.length, + itemBuilder: (context, index) { + final option = options.elementAt(index); + return optionBuilder(context, option); + }, + ), + ), + ], ), ); } From cd2e3004ca59d75372ed32dfba5d08d3faba3525 Mon Sep 17 00:00:00 2001 From: Sahil Kumar Date: Thu, 25 May 2023 17:51:26 +0530 Subject: [PATCH 4/4] Update packages/stream_chat_flutter/lib/src/autocomplete/stream_autocomplete.dart --- .../lib/src/autocomplete/stream_autocomplete.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/stream_chat_flutter/lib/src/autocomplete/stream_autocomplete.dart b/packages/stream_chat_flutter/lib/src/autocomplete/stream_autocomplete.dart index 3e79fe32..23ec5492 100644 --- a/packages/stream_chat_flutter/lib/src/autocomplete/stream_autocomplete.dart +++ b/packages/stream_chat_flutter/lib/src/autocomplete/stream_autocomplete.dart @@ -508,12 +508,12 @@ class _StreamAutocompleteState extends State { final shouldShowOptions = _shouldShowOptions; final optionViewBuilder = shouldShowOptions ? TextFieldTapRegion( - child: _currentTrigger!.optionsViewBuilder( + child: _currentTrigger!.optionsViewBuilder( context, _currentQuery!, _messageEditingController, ), - ) + ) : null; return PortalTarget(