TF-2101 Add email_recovery fields enum

(cherry picked from commit b9154d3175b3a77ce778e8fc9c51d83200d37dae)
This commit is contained in:
hieubt
2023-12-21 00:11:09 +07:00
committed by Dat H. Pham
parent bf0030e7d7
commit 797815fa24
@@ -0,0 +1,94 @@
import 'package:core/presentation/extensions/color_extension.dart';
import 'package:flutter/material.dart';
import 'package:tmail_ui_user/features/email_recovery/presentation/model/email_recovery_time_type.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
enum EmailRecoveryField {
deletionDate,
receptionDate,
subject,
recipients,
sender;
String getTitle(BuildContext context) {
switch (this) {
case EmailRecoveryField.deletionDate:
return AppLocalizations.of(context).deletionDate;
case EmailRecoveryField.receptionDate:
return AppLocalizations.of(context).receptionDate;
case EmailRecoveryField.subject:
return AppLocalizations.of(context).subject;
case EmailRecoveryField.recipients:
return AppLocalizations.of(context).headerRecipients;
case EmailRecoveryField.sender:
return AppLocalizations.of(context).sender;
}
}
String getHintText(BuildContext context) {
switch (this) {
case EmailRecoveryField.deletionDate:
return AppLocalizations.of(context).last1Year;
case EmailRecoveryField.receptionDate:
return AppLocalizations.of(context).allTime;
case EmailRecoveryField.subject:
return AppLocalizations.of(context).enterSomeSuggestions;
case EmailRecoveryField.recipients:
return AppLocalizations.of(context).addRecipientButton;
case EmailRecoveryField.sender:
return AppLocalizations.of(context).addSender;
}
}
List<EmailRecoveryTimeType> getSupportedTimeTypes() {
switch (this) {
case EmailRecoveryField.deletionDate:
return [
EmailRecoveryTimeType.last1Year,
EmailRecoveryTimeType.last7Days,
EmailRecoveryTimeType.last30Days,
EmailRecoveryTimeType.last6Months,
EmailRecoveryTimeType.customRange,
];
case EmailRecoveryField.receptionDate:
return [
EmailRecoveryTimeType.allTime,
EmailRecoveryTimeType.last7Days,
EmailRecoveryTimeType.last30Days,
EmailRecoveryTimeType.last6Months,
EmailRecoveryTimeType.lastYear,
EmailRecoveryTimeType.customRange,
];
default:
return [];
}
}
TextStyle getTitleTextStyle() {
return const TextStyle(
fontSize: 14,
fontWeight: FontWeight.w400,
color: AppColor.colorContentEmail,
);
}
TextStyle getHintTextStyle() {
final Color color;
switch (this) {
case EmailRecoveryField.deletionDate:
case EmailRecoveryField.receptionDate:
color = Colors.black;
break;
case EmailRecoveryField.subject:
case EmailRecoveryField.recipients:
case EmailRecoveryField.sender:
color = AppColor.colorHintSearchBar;
break;
}
return TextStyle(
fontSize: 16,
fontWeight: FontWeight.w400,
color: color,
);
}
}