TF-3219 display limits of email recovery in a yellow banner and filter out invalid suggestions
This commit is contained in:
committed by
Dat H. Pham
parent
2fcb5f03d0
commit
68e9fc2f16
+3
-1
@@ -18,6 +18,7 @@ class DateSelectionFieldWebWidget extends StatelessWidget {
|
||||
final EmailRecoveryTimeType? recoveryTimeSelected;
|
||||
final OnRecoveryTimeSelected? onRecoveryTimeSelected;
|
||||
final VoidCallback? onTapCalendar;
|
||||
final DateTime restorationHorizon;
|
||||
|
||||
const DateSelectionFieldWebWidget({
|
||||
super.key,
|
||||
@@ -29,6 +30,7 @@ class DateSelectionFieldWebWidget extends StatelessWidget {
|
||||
this.recoveryTimeSelected,
|
||||
this.onRecoveryTimeSelected,
|
||||
this.onTapCalendar,
|
||||
required this.restorationHorizon
|
||||
});
|
||||
|
||||
@override
|
||||
@@ -54,7 +56,7 @@ class DateSelectionFieldWebWidget extends StatelessWidget {
|
||||
endDate: endDate,
|
||||
recoveryTimeSelected: recoveryTimeSelected,
|
||||
onRecoveryTimeSelected: onRecoveryTimeSelected,
|
||||
items: field.getSupportedTimeTypes(),
|
||||
items: field.getSupportedTimeTypes(restorationHorizon),
|
||||
),
|
||||
),
|
||||
const SizedBox(width: DateSelectionFieldStyles.icCalenderSpace),
|
||||
|
||||
+7
@@ -7,6 +7,7 @@ import 'package:tmail_ui_user/features/email_recovery/presentation/model/email_r
|
||||
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/check_box_has_attachment_widget.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/limits_banner.dart';
|
||||
import 'package:tmail_ui_user/features/email_recovery/presentation/widgets/list_button_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';
|
||||
@@ -41,6 +42,10 @@ class EmailRecoveryFormDesktopBuilder extends GetWidget<EmailRecoveryController>
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
LimitsBanner(
|
||||
bannerContent: AppLocalizations.of(context).recoverDeletedMessagesBannerContent(controller.getRestorationHorizonAsString()),
|
||||
),
|
||||
const SizedBox(height: 16.0),
|
||||
Obx(() => DateSelectionFieldWebWidget(
|
||||
field: EmailRecoveryField.deletionDate,
|
||||
imagePaths: controller.imagePaths,
|
||||
@@ -50,6 +55,7 @@ class EmailRecoveryFormDesktopBuilder extends GetWidget<EmailRecoveryController>
|
||||
recoveryTimeSelected: controller.deletionDateFieldSelected.value,
|
||||
onTapCalendar: () => controller.onSelectDeletionDateRange(context),
|
||||
onRecoveryTimeSelected: (type) => controller.onDeletionDateTypeSelected(context, type),
|
||||
restorationHorizon: controller.getRestorationHorizonAsDateTime(),
|
||||
)),
|
||||
Obx(() => DateSelectionFieldWebWidget(
|
||||
field: EmailRecoveryField.receptionDate,
|
||||
@@ -60,6 +66,7 @@ class EmailRecoveryFormDesktopBuilder extends GetWidget<EmailRecoveryController>
|
||||
recoveryTimeSelected: controller.receptionDateFieldSelected.value,
|
||||
onTapCalendar: () => controller.onSelectReceptionDateRange(context),
|
||||
onRecoveryTimeSelected: (type) => controller.onReceptionDateTypeSelected(context, type),
|
||||
restorationHorizon: controller.getRestorationHorizonAsDateTime(),
|
||||
)),
|
||||
TextInputFieldWidget(
|
||||
field: EmailRecoveryField.subject,
|
||||
|
||||
+5
@@ -7,6 +7,7 @@ import 'package:tmail_ui_user/features/email_recovery/presentation/model/email_r
|
||||
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/check_box_has_attachment_widget.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/limits_banner.dart';
|
||||
import 'package:tmail_ui_user/features/email_recovery/presentation/widgets/list_button_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';
|
||||
@@ -41,6 +42,10 @@ class EmailRecoveryFormMobileBuilder extends GetWidget<EmailRecoveryController>
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
LimitsBanner(
|
||||
bannerContent: AppLocalizations.of(context).recoverDeletedMessagesBannerContent(controller.getRestorationHorizonAsString()),
|
||||
),
|
||||
const SizedBox(height: 16.0),
|
||||
Obx(() => DateSelectionFieldMobileWidget(
|
||||
field: EmailRecoveryField.deletionDate,
|
||||
recoveryTimeSelected: controller.deletionDateFieldSelected.value,
|
||||
|
||||
+7
@@ -7,6 +7,7 @@ import 'package:tmail_ui_user/features/email_recovery/presentation/model/email_r
|
||||
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/check_box_has_attachment_widget.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/limits_banner.dart';
|
||||
import 'package:tmail_ui_user/features/email_recovery/presentation/widgets/list_button_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';
|
||||
@@ -41,6 +42,10 @@ class EmailRecoveryFormTabletBuilder extends GetWidget<EmailRecoveryController>
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
LimitsBanner(
|
||||
bannerContent: AppLocalizations.of(context).recoverDeletedMessagesBannerContent(controller.getRestorationHorizonAsString()),
|
||||
),
|
||||
const SizedBox(height: 16.0),
|
||||
Obx(() => DateSelectionFieldWebWidget(
|
||||
field: EmailRecoveryField.deletionDate,
|
||||
imagePaths: controller.imagePaths,
|
||||
@@ -50,6 +55,7 @@ class EmailRecoveryFormTabletBuilder extends GetWidget<EmailRecoveryController>
|
||||
recoveryTimeSelected: controller.deletionDateFieldSelected.value,
|
||||
onTapCalendar: () => controller.onSelectDeletionDateRange(context),
|
||||
onRecoveryTimeSelected: (type) => controller.onDeletionDateTypeSelected(context, type),
|
||||
restorationHorizon: controller.getRestorationHorizonAsDateTime(),
|
||||
)),
|
||||
Obx(() => DateSelectionFieldWebWidget(
|
||||
field: EmailRecoveryField.receptionDate,
|
||||
@@ -60,6 +66,7 @@ class EmailRecoveryFormTabletBuilder extends GetWidget<EmailRecoveryController>
|
||||
recoveryTimeSelected: controller.receptionDateFieldSelected.value,
|
||||
onTapCalendar: () => controller.onSelectReceptionDateRange(context),
|
||||
onRecoveryTimeSelected: (type) => controller.onReceptionDateTypeSelected(context, type),
|
||||
restorationHorizon: controller.getRestorationHorizonAsDateTime(),
|
||||
)),
|
||||
TextInputFieldWidget(
|
||||
field: EmailRecoveryField.subject,
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
class LimitsBanner extends StatelessWidget {
|
||||
final String bannerContent;
|
||||
|
||||
const LimitsBanner({
|
||||
super.key,
|
||||
required this.bannerContent,
|
||||
});
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
width: double.infinity,
|
||||
padding: const EdgeInsets.symmetric(vertical: 12.0, horizontal: 16.0),
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.yellow[400],
|
||||
borderRadius: const BorderRadius.all(Radius.circular(8.0)),
|
||||
),
|
||||
child: Center(
|
||||
child: Text(
|
||||
bannerContent,
|
||||
style: const TextStyle(
|
||||
fontSize: 16,
|
||||
color: Colors.black,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
textAlign: TextAlign.center,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user