From efe0a839ef8167996d991d1bb1821560d5a7f32c Mon Sep 17 00:00:00 2001 From: HuyNguyen Date: Wed, 5 Apr 2023 17:44:19 +0700 Subject: [PATCH] TF-1699: Support hide suggestion when scrolling list email to, cc, bcc. (cherry picked from commit 5269b572847419ca6ff3fb12b04f09ae142c5fc4) --- .../presentation/composer_controller.dart | 16 ++++++++++++++++ .../composer/presentation/composer_view_web.dart | 1 + 2 files changed, 17 insertions(+) diff --git a/lib/features/composer/presentation/composer_controller.dart b/lib/features/composer/presentation/composer_controller.dart index 75cb92dbd..a809a65b6 100644 --- a/lib/features/composer/presentation/composer_controller.dart +++ b/lib/features/composer/presentation/composer_controller.dart @@ -133,6 +133,7 @@ class ComposerController extends BaseController { final RichTextController keyboardRichTextController = RichTextController(); final ScrollController scrollController = ScrollController(); + final ScrollController scrollControllerEmailAddress = ScrollController(); List initialAttachments = []; String? _textEditorWeb; @@ -213,6 +214,7 @@ class ComposerController extends BaseController { void onInit() { super.onInit(); createFocusNodeInput(); + scrollControllerEmailAddress.addListener(_scrollControllerEmailAddressListener); _listenWorker(); if (!BuildUtils.isWeb) { WidgetsBinding.instance.addPostFrameCallback((timeStamp) async { @@ -262,6 +264,8 @@ class ComposerController extends BaseController { uploadInlineImageWorker.dispose(); keyboardRichTextController.dispose(); scrollController.dispose(); + scrollControllerEmailAddress.removeListener(_scrollControllerEmailAddressListener); + scrollControllerEmailAddress.dispose(); super.dispose(); } @@ -328,6 +332,18 @@ class ComposerController extends BaseController { }); } + void _scrollControllerEmailAddressListener() { + if (toEmailAddressController.text.isNotEmpty) { + keyToEmailTagEditor.currentState?.closeSuggestionBox(); + } + if (ccEmailAddressController.text.isNotEmpty) { + keyCcEmailTagEditor.currentState?.closeSuggestionBox(); + } + if (bccEmailAddressController.text.isNotEmpty) { + keyBccEmailTagEditor.currentState?.closeSuggestionBox(); + } + } + void createFocusNodeInput() { toAddressFocusNode = FocusNode(); subjectEmailInputFocusNode = FocusNode(); diff --git a/lib/features/composer/presentation/composer_view_web.dart b/lib/features/composer/presentation/composer_view_web.dart index 610c928de..239c22dae 100644 --- a/lib/features/composer/presentation/composer_view_web.dart +++ b/lib/features/composer/presentation/composer_view_web.dart @@ -541,6 +541,7 @@ class ComposerView extends GetWidget return ConstrainedBox( constraints: BoxConstraints(maxHeight: _getMaxHeightEmailAddressWidget(context, constraints)), child: SingleChildScrollView( + controller: controller.scrollControllerEmailAddress, child: Column( children: [ Obx(() => Padding(