From dbf9caf9c8897e90e62045dd57ee1272a5b02144 Mon Sep 17 00:00:00 2001 From: dab246 Date: Mon, 20 Feb 2023 16:40:26 +0700 Subject: [PATCH] TF-874 Fix duplicate focusable when focus to editor composer on mobile --- .../presentation/composer_controller.dart | 18 +++++++++++++++++- .../composer/presentation/composer_view.dart | 10 +--------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/lib/features/composer/presentation/composer_controller.dart b/lib/features/composer/presentation/composer_controller.dart index 3282f0969..3ca842acc 100644 --- a/lib/features/composer/presentation/composer_controller.dart +++ b/lib/features/composer/presentation/composer_controller.dart @@ -316,6 +316,22 @@ class ComposerController extends BaseController { subjectEmailInputFocusNode = FocusNode(); } + void initRichTextForMobile(BuildContext context, HtmlEditorApi editorApi) { + richTextMobileTabletController.htmlEditorApi = editorApi; + keyboardRichTextController.onCreateHTMLEditor( + editorApi, + onEnterKeyDown: _onEnterKeyDown, + context: context, + ); + + richTextMobileTabletController.htmlEditorApi?.onFocus = () { + FocusManager.instance.primaryFocus?.unfocus(); + + _collapseAllRecipient(); + _autoCreateEmailTag(); + }; + } + void _initEmail() { final arguments = kIsWeb ? mailboxDashBoardController.routerArguments : Get.arguments; if (arguments is ComposerArguments) { @@ -1483,7 +1499,7 @@ class ComposerController extends BaseController { popBack(); } - void onEnterKeyDown() { + void _onEnterKeyDown() { if(scrollController.position.pixels < scrollController.position.maxScrollExtent) { scrollController.animateTo( scrollController.position.pixels + 20, diff --git a/lib/features/composer/presentation/composer_view.dart b/lib/features/composer/presentation/composer_view.dart index 081419030..7cc4b908f 100644 --- a/lib/features/composer/presentation/composer_view.dart +++ b/lib/features/composer/presentation/composer_view.dart @@ -599,7 +599,6 @@ class ComposerView extends GetWidget } Widget _buildHtmlEditor(BuildContext context, {String? initialContent}) { - final richTextMobileTabletController = controller.richTextMobileTabletController; return Padding( padding: const EdgeInsets.only(left: 16, right: 16, bottom: 20), child: HtmlEditor( @@ -607,14 +606,7 @@ class ComposerView extends GetWidget minHeight: 550, addDefaultSelectionMenuItems: false, initialContent: initialContent ?? '', - onCreated: (editorApi) { - richTextMobileTabletController.htmlEditorApi = editorApi; - controller.keyboardRichTextController.onCreateHTMLEditor( - editorApi, - onEnterKeyDown: controller.onEnterKeyDown, - context: context, - ); - }, + onCreated: (editorApi) => controller.initRichTextForMobile(context, editorApi) ), ); }