TF-1699: Support hide suggestion when scrolling list email to, cc, bcc.

(cherry picked from commit 5269b572847419ca6ff3fb12b04f09ae142c5fc4)
This commit is contained in:
HuyNguyen
2023-04-05 17:44:19 +07:00
committed by Dat Vu
parent 008e36a811
commit efe0a839ef
2 changed files with 17 additions and 0 deletions
@@ -133,6 +133,7 @@ class ComposerController extends BaseController {
final RichTextController keyboardRichTextController = RichTextController(); final RichTextController keyboardRichTextController = RichTextController();
final ScrollController scrollController = ScrollController(); final ScrollController scrollController = ScrollController();
final ScrollController scrollControllerEmailAddress = ScrollController();
List<Attachment> initialAttachments = <Attachment>[]; List<Attachment> initialAttachments = <Attachment>[];
String? _textEditorWeb; String? _textEditorWeb;
@@ -213,6 +214,7 @@ class ComposerController extends BaseController {
void onInit() { void onInit() {
super.onInit(); super.onInit();
createFocusNodeInput(); createFocusNodeInput();
scrollControllerEmailAddress.addListener(_scrollControllerEmailAddressListener);
_listenWorker(); _listenWorker();
if (!BuildUtils.isWeb) { if (!BuildUtils.isWeb) {
WidgetsBinding.instance.addPostFrameCallback((timeStamp) async { WidgetsBinding.instance.addPostFrameCallback((timeStamp) async {
@@ -262,6 +264,8 @@ class ComposerController extends BaseController {
uploadInlineImageWorker.dispose(); uploadInlineImageWorker.dispose();
keyboardRichTextController.dispose(); keyboardRichTextController.dispose();
scrollController.dispose(); scrollController.dispose();
scrollControllerEmailAddress.removeListener(_scrollControllerEmailAddressListener);
scrollControllerEmailAddress.dispose();
super.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() { void createFocusNodeInput() {
toAddressFocusNode = FocusNode(); toAddressFocusNode = FocusNode();
subjectEmailInputFocusNode = FocusNode(); subjectEmailInputFocusNode = FocusNode();
@@ -541,6 +541,7 @@ class ComposerView extends GetWidget<ComposerController>
return ConstrainedBox( return ConstrainedBox(
constraints: BoxConstraints(maxHeight: _getMaxHeightEmailAddressWidget(context, constraints)), constraints: BoxConstraints(maxHeight: _getMaxHeightEmailAddressWidget(context, constraints)),
child: SingleChildScrollView( child: SingleChildScrollView(
controller: controller.scrollControllerEmailAddress,
child: Column( child: Column(
children: [ children: [
Obx(() => Padding( Obx(() => Padding(