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 ScrollController scrollController = ScrollController();
final ScrollController scrollControllerEmailAddress = ScrollController();
List<Attachment> initialAttachments = <Attachment>[];
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();
@@ -541,6 +541,7 @@ class ComposerView extends GetWidget<ComposerController>
return ConstrainedBox(
constraints: BoxConstraints(maxHeight: _getMaxHeightEmailAddressWidget(context, constraints)),
child: SingleChildScrollView(
controller: controller.scrollControllerEmailAddress,
child: Column(
children: [
Obx(() => Padding(