TF-1709 Add quick sort filter to mailbox dashboard

(cherry picked from commit 7a50bebfd102887a10b425976993ae56fcff6c7f)
This commit is contained in:
hieubt
2023-11-11 00:40:57 +07:00
committed by Dat Vu
parent cf953f8404
commit f0713f3789
2 changed files with 61 additions and 5 deletions
@@ -4,13 +4,15 @@ import 'package:core/presentation/resources/image_paths.dart';
import 'package:flutter/cupertino.dart';
import 'package:model/user/user_profile.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_receive_time_type.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/email_sort_order_type.dart';
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/search_email_filter.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
enum QuickSearchFilter {
hasAttachment,
last7Days,
fromMe;
fromMe,
sortBy;
String getName(BuildContext context) {
switch(this) {
@@ -20,12 +22,15 @@ enum QuickSearchFilter {
return AppLocalizations.of(context).last7Days;
case QuickSearchFilter.fromMe:
return AppLocalizations.of(context).fromMe;
case QuickSearchFilter.sortBy:
return AppLocalizations.of(context).sortBy;
}
}
String getTitle(
BuildContext context, {
EmailReceiveTimeType? receiveTimeType,
EmailSortOrderType? sortOrderType,
DateTime? startDate,
DateTime? endDate,
}) {
@@ -37,6 +42,9 @@ enum QuickSearchFilter {
?? AppLocalizations.of(context).allTime;
case QuickSearchFilter.fromMe:
return AppLocalizations.of(context).fromMe;
case QuickSearchFilter.sortBy:
return sortOrderType?.getTitle(context)
?? AppLocalizations.of(context).mostRecent;
}
}
@@ -51,6 +59,8 @@ enum QuickSearchFilter {
return imagePaths.icCalendarSB;
case QuickSearchFilter.fromMe:
return imagePaths.icUserSB;
case QuickSearchFilter.sortBy:
return imagePaths.icFilterSB;
}
}
}
@@ -89,6 +99,8 @@ enum QuickSearchFilter {
return userProfile != null &&
filter.from.contains(userProfile.email) &&
filter.from.length == 1;
case QuickSearchFilter.sortBy:
return true;
}
}
}