TF-2101 Add date selection fields to email recovery form

(cherry picked from commit 92f55fbf4399f9f8e01315c69147eeb4e811f24f)
This commit is contained in:
hieubt
2023-12-21 00:33:26 +07:00
committed by Dat H. Pham
parent fffceef99e
commit fc528e122d
3 changed files with 103 additions and 0 deletions
@@ -3,7 +3,9 @@ import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
import 'package:tmail_ui_user/features/email_recovery/presentation/email_recovery_controller.dart';
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/main/localizations/app_localizations.dart';
class EmailRecoveryFormDesktopBuilder extends GetWidget<EmailRecoveryController> {
@@ -27,6 +29,41 @@ class EmailRecoveryFormDesktopBuilder extends GetWidget<EmailRecoveryController>
style: EmailRecoveryFormStyles.titleTextStyle,
),
),
Expanded(
child: SingleChildScrollView(
physics: const ClampingScrollPhysics(),
child: Padding(
padding: EmailRecoveryFormStyles.inputAreaPadding,
child: FocusTraversalGroup(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Obx(() => DateSelectionFieldWebWidget(
field: EmailRecoveryField.deletionDate,
imagePaths: controller.imagePaths,
responsiveUtils: controller.responsiveUtils,
startDate: controller.startDeletionDate.value,
endDate: controller.endDeletionDate.value,
recoveryTimeSelected: controller.deletionDateFieldSelected.value,
onTapCalendar: () => controller.onSelectDeletionDateRange(context),
onRecoveryTimeSelected: (type) => controller.onDeletionDateTypeSelected(context, type),
)),
Obx(() => DateSelectionFieldWebWidget(
field: EmailRecoveryField.receptionDate,
imagePaths: controller.imagePaths,
responsiveUtils: controller.responsiveUtils,
startDate: controller.startReceptionDate.value,
endDate: controller.endReceptionDate.value,
recoveryTimeSelected: controller.receptionDateFieldSelected.value,
onTapCalendar: () => controller.onSelectReceptionDateRange(context),
onRecoveryTimeSelected: (type) => controller.onReceptionDateTypeSelected(context, type),
)),
],
),
),
),
)
),
],
),
Positioned(
@@ -3,7 +3,9 @@ import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
import 'package:tmail_ui_user/features/email_recovery/presentation/email_recovery_controller.dart';
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/main/localizations/app_localizations.dart';
class EmailRecoveryFormMobileBuilder extends GetWidget<EmailRecoveryController> {
@@ -27,6 +29,35 @@ class EmailRecoveryFormMobileBuilder extends GetWidget<EmailRecoveryController>
style: EmailRecoveryFormStyles.titleTextStyle,
),
),
Expanded(
child: SingleChildScrollView(
physics: const ClampingScrollPhysics(),
child: Padding(
padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 20.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Obx(() => DateSelectionFieldMobileWidget(
field: EmailRecoveryField.deletionDate,
recoveryTimeSelected: controller.deletionDateFieldSelected.value,
imagePaths: controller.imagePaths,
onTap: () => controller.onSelectDeletionDateRange(context),
startDate: controller.startDeletionDate.value,
endDate: controller.endDeletionDate.value,
)),
Obx(() => DateSelectionFieldMobileWidget(
field: EmailRecoveryField.receptionDate,
recoveryTimeSelected: controller.receptionDateFieldSelected.value,
imagePaths: controller.imagePaths,
onTap: () => controller.onSelectReceptionDateRange(context),
startDate: controller.startReceptionDate.value,
endDate: controller.endReceptionDate.value,
)),
],
),
),
),
),
],
),
Positioned(
@@ -3,7 +3,9 @@ import 'package:flutter/material.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:get/get.dart';
import 'package:tmail_ui_user/features/email_recovery/presentation/email_recovery_controller.dart';
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/main/localizations/app_localizations.dart';
class EmailRecoveryFormTabletBuilder extends GetWidget<EmailRecoveryController> {
@@ -27,6 +29,39 @@ class EmailRecoveryFormTabletBuilder extends GetWidget<EmailRecoveryController>
style: EmailRecoveryFormStyles.titleTextStyle,
),
),
Expanded(
child: SingleChildScrollView(
physics: const ClampingScrollPhysics(),
child: Padding(
padding: EmailRecoveryFormStyles.inputAreaPadding,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Obx(() => DateSelectionFieldWebWidget(
field: EmailRecoveryField.deletionDate,
imagePaths: controller.imagePaths,
responsiveUtils: controller.responsiveUtils,
startDate: controller.startDeletionDate.value,
endDate: controller.endDeletionDate.value,
recoveryTimeSelected: controller.deletionDateFieldSelected.value,
onTapCalendar: () => controller.onSelectDeletionDateRange(context),
onRecoveryTimeSelected: (type) => controller.onDeletionDateTypeSelected(context, type),
)),
Obx(() => DateSelectionFieldWebWidget(
field: EmailRecoveryField.receptionDate,
imagePaths: controller.imagePaths,
responsiveUtils: controller.responsiveUtils,
startDate: controller.startReceptionDate.value,
endDate: controller.endReceptionDate.value,
recoveryTimeSelected: controller.receptionDateFieldSelected.value,
onTapCalendar: () => controller.onSelectReceptionDateRange(context),
onRecoveryTimeSelected: (type) => controller.onReceptionDateTypeSelected(context, type),
)),
],
),
),
)
),
],
),
Positioned(