From 842b2dcb3f27836ccb8953e338edebd36af31496 Mon Sep 17 00:00:00 2001 From: hieubt Date: Thu, 21 Dec 2023 15:57:55 +0700 Subject: [PATCH] TF-2101 Add tex input fields to dialog (cherry picked from commit a8b71de2bd8d847f17bb513578ec934a26bd2c31) --- .../email_recovery_form_desktop_builder.dart | 38 +++++++++++++++++++ .../email_recovery_form_mobile_builder.dart | 36 ++++++++++++++++++ .../email_recovery_form_tablet_builder.dart | 36 ++++++++++++++++++ 3 files changed, 110 insertions(+) diff --git a/lib/features/email_recovery/presentation/widgets/email_recovery_form/email_recovery_form_desktop_builder.dart b/lib/features/email_recovery/presentation/widgets/email_recovery_form/email_recovery_form_desktop_builder.dart index 25fe72afb..009284093 100644 --- a/lib/features/email_recovery/presentation/widgets/email_recovery_form/email_recovery_form_desktop_builder.dart +++ b/lib/features/email_recovery/presentation/widgets/email_recovery_form/email_recovery_form_desktop_builder.dart @@ -6,6 +6,8 @@ import 'package:tmail_ui_user/features/email_recovery/presentation/email_recover import 'package:tmail_ui_user/features/email_recovery/presentation/model/email_recovery_field.dart'; import 'package:tmail_ui_user/features/email_recovery/presentation/styles/email_recovery_form_styles.dart'; import 'package:tmail_ui_user/features/email_recovery/presentation/widgets/date_selection_field/date_selection_field_web_widget.dart'; +import 'package:tmail_ui_user/features/email_recovery/presentation/widgets/text_input_field/text_input_field_suggestion_widget.dart'; +import 'package:tmail_ui_user/features/email_recovery/presentation/widgets/text_input_field/text_input_field_widget.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; class EmailRecoveryFormDesktopBuilder extends GetWidget { @@ -57,6 +59,42 @@ class EmailRecoveryFormDesktopBuilder extends GetWidget onTapCalendar: () => controller.onSelectReceptionDateRange(context), onRecoveryTimeSelected: (type) => controller.onReceptionDateTypeSelected(context, type), )), + TextInputFieldWidget( + field: EmailRecoveryField.subject, + textEditingController: controller.subjectFieldInputController, + currentFocusNode: controller.focusManager.subjectFieldFocusNode, + nextFocusNode: controller.focusManager.recipientsFieldFocusNode, + responsiveUtils: controller.responsiveUtils, + imagePaths: controller.imagePaths, + ), + Obx(() => TextInputFieldSuggestionWidget( + keyTagEditor: controller.recipientsFieldKey, + field: EmailRecoveryField.recipients, + listEmailAddress: controller.listRecipients, + responsiveUtils: controller.responsiveUtils, + expandMode: controller.recipientsExpandMode.value, + textEditingController: controller.recipientsFieldInputController, + focusNode: controller.focusManager.recipientsFieldFocusNode, + nextFocusNode: controller.listSenders.length != 1 + ? controller.focusManager.senderFieldFocusNode + : controller.focusManager.attachmentCheckboxFocusNode, + onShowFullListEmailAddressAction: controller.showFullEmailAddress, + onUpdateListEmailAddressAction: controller.updateListEmailAddress, + onSuggestionEmailAddress: controller.getAutoCompleteSuggestion, + )), + Obx(() => TextInputFieldSuggestionWidget( + keyTagEditor: controller.senderFieldKey, + field: EmailRecoveryField.sender, + listEmailAddress: controller.listSenders, + responsiveUtils: controller.responsiveUtils, + expandMode: controller.senderExpandMode.value, + textEditingController: controller.senderFieldInputController, + focusNode: controller.focusManager.senderFieldFocusNode, + nextFocusNode: controller.focusManager.attachmentCheckboxFocusNode, + onShowFullListEmailAddressAction: controller.showFullEmailAddress, + onUpdateListEmailAddressAction: controller.updateListEmailAddress, + onSuggestionEmailAddress: controller.getAutoCompleteSuggestion, + )), ], ), ), diff --git a/lib/features/email_recovery/presentation/widgets/email_recovery_form/email_recovery_form_mobile_builder.dart b/lib/features/email_recovery/presentation/widgets/email_recovery_form/email_recovery_form_mobile_builder.dart index f32b53fef..cb6070dd6 100644 --- a/lib/features/email_recovery/presentation/widgets/email_recovery_form/email_recovery_form_mobile_builder.dart +++ b/lib/features/email_recovery/presentation/widgets/email_recovery_form/email_recovery_form_mobile_builder.dart @@ -6,6 +6,8 @@ import 'package:tmail_ui_user/features/email_recovery/presentation/email_recover import 'package:tmail_ui_user/features/email_recovery/presentation/model/email_recovery_field.dart'; import 'package:tmail_ui_user/features/email_recovery/presentation/styles/email_recovery_form_styles.dart'; import 'package:tmail_ui_user/features/email_recovery/presentation/widgets/date_selection_field/date_selection_field_mobile_widget.dart'; +import 'package:tmail_ui_user/features/email_recovery/presentation/widgets/text_input_field/text_input_field_suggestion_widget.dart'; +import 'package:tmail_ui_user/features/email_recovery/presentation/widgets/text_input_field/text_input_field_widget.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; class EmailRecoveryFormMobileBuilder extends GetWidget { @@ -53,6 +55,40 @@ class EmailRecoveryFormMobileBuilder extends GetWidget startDate: controller.startReceptionDate.value, endDate: controller.endReceptionDate.value, )), + TextInputFieldWidget( + field: EmailRecoveryField.subject, + responsiveUtils: controller.responsiveUtils, + imagePaths: controller.imagePaths, + textEditingController: controller.subjectFieldInputController, + currentFocusNode: controller.focusManager.subjectFieldFocusNode, + nextFocusNode: controller.focusManager.recipientsFieldFocusNode, + ), + Obx(() => TextInputFieldSuggestionWidget( + keyTagEditor: controller.recipientsFieldKey, + field: EmailRecoveryField.recipients, + listEmailAddress: controller.listRecipients, + responsiveUtils: controller.responsiveUtils, + focusNode: controller.focusManager.recipientsFieldFocusNode, + nextFocusNode: controller.focusManager.senderFieldFocusNode, + expandMode: controller.recipientsExpandMode.value, + textEditingController: controller.recipientsFieldInputController, + onShowFullListEmailAddressAction: controller.showFullEmailAddress, + onUpdateListEmailAddressAction: controller.updateListEmailAddress, + onSuggestionEmailAddress: controller.getAutoCompleteSuggestion, + )), + Obx(() => TextInputFieldSuggestionWidget( + keyTagEditor: controller.senderFieldKey, + field: EmailRecoveryField.sender, + listEmailAddress: controller.listSenders, + responsiveUtils: controller.responsiveUtils, + focusNode: controller.focusManager.senderFieldFocusNode, + nextFocusNode: controller.focusManager.attachmentCheckboxFocusNode, + expandMode: controller.senderExpandMode.value, + textEditingController: controller.senderFieldInputController, + onShowFullListEmailAddressAction: controller.showFullEmailAddress, + onUpdateListEmailAddressAction: controller.updateListEmailAddress, + onSuggestionEmailAddress: controller.getAutoCompleteSuggestion, + )), ], ), ), diff --git a/lib/features/email_recovery/presentation/widgets/email_recovery_form/email_recovery_form_tablet_builder.dart b/lib/features/email_recovery/presentation/widgets/email_recovery_form/email_recovery_form_tablet_builder.dart index c33dd7cc4..b4d215499 100644 --- a/lib/features/email_recovery/presentation/widgets/email_recovery_form/email_recovery_form_tablet_builder.dart +++ b/lib/features/email_recovery/presentation/widgets/email_recovery_form/email_recovery_form_tablet_builder.dart @@ -6,6 +6,8 @@ import 'package:tmail_ui_user/features/email_recovery/presentation/email_recover import 'package:tmail_ui_user/features/email_recovery/presentation/model/email_recovery_field.dart'; import 'package:tmail_ui_user/features/email_recovery/presentation/styles/email_recovery_form_styles.dart'; import 'package:tmail_ui_user/features/email_recovery/presentation/widgets/date_selection_field/date_selection_field_web_widget.dart'; +import 'package:tmail_ui_user/features/email_recovery/presentation/widgets/text_input_field/text_input_field_suggestion_widget.dart'; +import 'package:tmail_ui_user/features/email_recovery/presentation/widgets/text_input_field/text_input_field_widget.dart'; import 'package:tmail_ui_user/main/localizations/app_localizations.dart'; class EmailRecoveryFormTabletBuilder extends GetWidget { @@ -57,6 +59,40 @@ class EmailRecoveryFormTabletBuilder extends GetWidget onTapCalendar: () => controller.onSelectReceptionDateRange(context), onRecoveryTimeSelected: (type) => controller.onReceptionDateTypeSelected(context, type), )), + TextInputFieldWidget( + field: EmailRecoveryField.subject, + textEditingController: controller.subjectFieldInputController, + currentFocusNode: controller.focusManager.subjectFieldFocusNode, + nextFocusNode: controller.focusManager.recipientsFieldFocusNode, + responsiveUtils: controller.responsiveUtils, + imagePaths: controller.imagePaths, + ), + Obx(() => TextInputFieldSuggestionWidget( + keyTagEditor: controller.recipientsFieldKey, + field: EmailRecoveryField.recipients, + listEmailAddress: controller.listRecipients, + responsiveUtils: controller.responsiveUtils, + expandMode: controller.recipientsExpandMode.value, + textEditingController: controller.recipientsFieldInputController, + focusNode: controller.focusManager.recipientsFieldFocusNode, + nextFocusNode: controller.focusManager.senderFieldFocusNode, + onShowFullListEmailAddressAction: controller.showFullEmailAddress, + onUpdateListEmailAddressAction: controller.updateListEmailAddress, + onSuggestionEmailAddress: controller.getAutoCompleteSuggestion, + )), + Obx(() => TextInputFieldSuggestionWidget( + keyTagEditor: controller.senderFieldKey, + field: EmailRecoveryField.sender, + listEmailAddress: controller.listSenders, + responsiveUtils: controller.responsiveUtils, + expandMode: controller.senderExpandMode.value, + textEditingController: controller.senderFieldInputController, + focusNode: controller.focusManager.senderFieldFocusNode, + nextFocusNode: controller.focusManager.attachmentCheckboxFocusNode, + onShowFullListEmailAddressAction: controller.showFullEmailAddress, + onUpdateListEmailAddressAction: controller.updateListEmailAddress, + onSuggestionEmailAddress: controller.getAutoCompleteSuggestion, + )), ], ), ),