add advanced search model and move all search model to folder search
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
import 'package:core/core.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
|
||||
enum AdvancedSearchFilterField {
|
||||
form,
|
||||
to,
|
||||
subject,
|
||||
hasKeyword,
|
||||
notKeyword,
|
||||
mailBox,
|
||||
date,
|
||||
hasAttachment;
|
||||
|
||||
String getTitle(BuildContext context) {
|
||||
switch (this) {
|
||||
case AdvancedSearchFilterField.form:
|
||||
return AppLocalizations.of(context).form;
|
||||
case AdvancedSearchFilterField.to:
|
||||
return AppLocalizations.of(context).to;
|
||||
case AdvancedSearchFilterField.subject:
|
||||
return AppLocalizations.of(context).subject;
|
||||
case AdvancedSearchFilterField.hasKeyword:
|
||||
return AppLocalizations.of(context).hasTheWords;
|
||||
case AdvancedSearchFilterField.notKeyword:
|
||||
return AppLocalizations.of(context).doesNotHave;
|
||||
case AdvancedSearchFilterField.mailBox:
|
||||
return AppLocalizations.of(context).mailbox;
|
||||
case AdvancedSearchFilterField.date:
|
||||
return AppLocalizations.of(context).date;
|
||||
case AdvancedSearchFilterField.hasAttachment:
|
||||
return AppLocalizations.of(context).hasAttachment;
|
||||
}
|
||||
}
|
||||
|
||||
String getHintText(BuildContext context) {
|
||||
switch (this) {
|
||||
case AdvancedSearchFilterField.form:
|
||||
case AdvancedSearchFilterField.to:
|
||||
return AppLocalizations.of(context).nameOrEmailAddress;
|
||||
case AdvancedSearchFilterField.subject:
|
||||
case AdvancedSearchFilterField.hasKeyword:
|
||||
case AdvancedSearchFilterField.notKeyword:
|
||||
return AppLocalizations.of(context).enterSearchTerm;
|
||||
case AdvancedSearchFilterField.mailBox:
|
||||
return AppLocalizations.of(context).allMails;
|
||||
case AdvancedSearchFilterField.date:
|
||||
return AppLocalizations.of(context).allTime;
|
||||
case AdvancedSearchFilterField.hasAttachment:
|
||||
return AppLocalizations.of(context).hasAttachment;
|
||||
}
|
||||
}
|
||||
|
||||
TextStyle getTitleTextStyle() {
|
||||
return const TextStyle(
|
||||
fontSize: 14,
|
||||
fontWeight: FontWeight.w400,
|
||||
color: AppColor.colorContentEmail);
|
||||
}
|
||||
|
||||
TextStyle getHintTextStyle() {
|
||||
return const TextStyle(
|
||||
fontSize: 16,
|
||||
fontWeight: FontWeight.w400,
|
||||
color: AppColor.colorHintSearchBar);
|
||||
}
|
||||
}
|
||||
+7
-10
@@ -4,18 +4,15 @@ import 'package:jmap_dart_client/jmap/core/utc_date.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
|
||||
enum EmailReceiveTimeType {
|
||||
anyTime,
|
||||
allTime,
|
||||
last7Days,
|
||||
last30Days,
|
||||
last6Months,
|
||||
lastYears,
|
||||
}
|
||||
|
||||
extension EmailReceiveTimeTypeExtension on EmailReceiveTimeType {
|
||||
lastYear;
|
||||
|
||||
String getTitle(BuildContext context) {
|
||||
switch(this) {
|
||||
case EmailReceiveTimeType.anyTime:
|
||||
case EmailReceiveTimeType.allTime:
|
||||
return AppLocalizations.of(context).anyTime;
|
||||
case EmailReceiveTimeType.last7Days:
|
||||
return AppLocalizations.of(context).last7Days;
|
||||
@@ -23,14 +20,14 @@ extension EmailReceiveTimeTypeExtension on EmailReceiveTimeType {
|
||||
return AppLocalizations.of(context).last30Days;
|
||||
case EmailReceiveTimeType.last6Months:
|
||||
return AppLocalizations.of(context).last6Months;
|
||||
case EmailReceiveTimeType.lastYears:
|
||||
case EmailReceiveTimeType.lastYear:
|
||||
return AppLocalizations.of(context).lastYears;
|
||||
}
|
||||
}
|
||||
|
||||
UTCDate? toUTCDate() {
|
||||
switch(this) {
|
||||
case EmailReceiveTimeType.anyTime:
|
||||
case EmailReceiveTimeType.allTime:
|
||||
return null;
|
||||
case EmailReceiveTimeType.last7Days:
|
||||
return UTCDate(DateTime.now().subtract(const Duration(days: 7)));
|
||||
@@ -38,8 +35,8 @@ extension EmailReceiveTimeTypeExtension on EmailReceiveTimeType {
|
||||
return UTCDate(DateTime.now().subtract(const Duration(days: 30)));
|
||||
case EmailReceiveTimeType.last6Months:
|
||||
return UTCDate(DateTime.now().subtract(const Duration(days: 180)));
|
||||
case EmailReceiveTimeType.lastYears:
|
||||
case EmailReceiveTimeType.lastYear:
|
||||
return UTCDate(DateTime.now().subtract(const Duration(days: 365)));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+8
-14
@@ -1,16 +1,13 @@
|
||||
|
||||
import 'package:core/core.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/email_receive_time_type.dart';
|
||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_receive_time_type.dart';
|
||||
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||
|
||||
enum QuickSearchFilter {
|
||||
hasAttachment,
|
||||
last7Days,
|
||||
fromMe
|
||||
}
|
||||
|
||||
extension QuickSearchFilterExtension on QuickSearchFilter {
|
||||
fromMe;
|
||||
|
||||
String getTitle(BuildContext context, {EmailReceiveTimeType? receiveTimeType}) {
|
||||
switch(this) {
|
||||
@@ -26,10 +23,9 @@ extension QuickSearchFilterExtension on QuickSearchFilter {
|
||||
}
|
||||
}
|
||||
|
||||
String getIcon(ImagePaths imagePaths, List<QuickSearchFilter> listFilter) {
|
||||
final filterSelected = listFilter.contains(this);
|
||||
String getIcon(ImagePaths imagePaths, bool quickSearchFilterSelected) {
|
||||
|
||||
if (filterSelected) {
|
||||
if (quickSearchFilterSelected) {
|
||||
return imagePaths.icSelectedSB;
|
||||
} else {
|
||||
switch(this) {
|
||||
@@ -43,20 +39,18 @@ extension QuickSearchFilterExtension on QuickSearchFilter {
|
||||
}
|
||||
}
|
||||
|
||||
Color getBackgroundColor(List<QuickSearchFilter> listFilter) {
|
||||
final filterSelected = listFilter.contains(this);
|
||||
Color getBackgroundColor(bool quickSearchFilterSelected) {
|
||||
|
||||
if (filterSelected) {
|
||||
if (quickSearchFilterSelected) {
|
||||
return AppColor.colorItemEmailSelectedDesktop;
|
||||
} else {
|
||||
return AppColor.colorButtonHeaderThread;
|
||||
}
|
||||
}
|
||||
|
||||
TextStyle getTextStyle(List<QuickSearchFilter> listFilter) {
|
||||
final filterSelected = listFilter.contains(this);
|
||||
TextStyle getTextStyle(bool quickSearchFilterSelected) {
|
||||
|
||||
if (filterSelected) {
|
||||
if (quickSearchFilterSelected) {
|
||||
return const TextStyle(
|
||||
fontSize: 13,
|
||||
fontWeight: FontWeight.w500,
|
||||
Reference in New Issue
Block a user