add advanced search model and move all search model to folder search
This commit is contained in:
@@ -7,7 +7,7 @@ import 'package:tmail_ui_user/features/base/mixin/network_connection_mixin.dart'
|
|||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/mailbox_dashboard_controller.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/mailbox_dashboard_controller.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/mixin/filter_email_popup_menu_mixin.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/mixin/filter_email_popup_menu_mixin.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/mixin/user_setting_popup_menu_mixin.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/mixin/user_setting_popup_menu_mixin.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/quick_search_filter.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/quick_search_filter.dart';
|
||||||
|
|
||||||
abstract class BaseMailboxDashBoardView extends GetWidget<MailboxDashBoardController>
|
abstract class BaseMailboxDashBoardView extends GetWidget<MailboxDashBoardController>
|
||||||
with NetworkConnectionMixin, UserSettingPopupMenuMixin, FilterEmailPopupMenuMixin,
|
with NetworkConnectionMixin, UserSettingPopupMenuMixin, FilterEmailPopupMenuMixin,
|
||||||
|
|||||||
@@ -49,8 +49,8 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/remove_
|
|||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/save_recent_search_interactor.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/usecases/save_recent_search_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/composer_overlay_state.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/composer_overlay_state.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/features/mailbox_dashboard/presentation/model/quick_search_filter.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/quick_search_filter.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/log_out_oidc_interactor.dart';
|
import 'package:tmail_ui_user/features/manage_account/domain/usecases/log_out_oidc_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/model/manage_account_arguments.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/model/manage_account_arguments.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/constants/thread_constants.dart';
|
import 'package:tmail_ui_user/features/thread/domain/constants/thread_constants.dart';
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/recent_sea
|
|||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/base_mailbox_dashboard_view.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/base_mailbox_dashboard_view.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/composer_overlay_state.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/composer_overlay_state.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/quick_search_filter.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/quick_search_filter.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/email_quick_search_item_tile_widget.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/email_quick_search_item_tile_widget.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/recent_search_item_tile_widget.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/recent_search_item_tile_widget.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/presentation/model/app_setting.dart';
|
import 'package:tmail_ui_user/features/manage_account/presentation/model/app_setting.dart';
|
||||||
|
|||||||
@@ -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';
|
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||||
|
|
||||||
enum EmailReceiveTimeType {
|
enum EmailReceiveTimeType {
|
||||||
anyTime,
|
allTime,
|
||||||
last7Days,
|
last7Days,
|
||||||
last30Days,
|
last30Days,
|
||||||
last6Months,
|
last6Months,
|
||||||
lastYears,
|
lastYear;
|
||||||
}
|
|
||||||
|
|
||||||
extension EmailReceiveTimeTypeExtension on EmailReceiveTimeType {
|
|
||||||
|
|
||||||
String getTitle(BuildContext context) {
|
String getTitle(BuildContext context) {
|
||||||
switch(this) {
|
switch(this) {
|
||||||
case EmailReceiveTimeType.anyTime:
|
case EmailReceiveTimeType.allTime:
|
||||||
return AppLocalizations.of(context).anyTime;
|
return AppLocalizations.of(context).anyTime;
|
||||||
case EmailReceiveTimeType.last7Days:
|
case EmailReceiveTimeType.last7Days:
|
||||||
return AppLocalizations.of(context).last7Days;
|
return AppLocalizations.of(context).last7Days;
|
||||||
@@ -23,14 +20,14 @@ extension EmailReceiveTimeTypeExtension on EmailReceiveTimeType {
|
|||||||
return AppLocalizations.of(context).last30Days;
|
return AppLocalizations.of(context).last30Days;
|
||||||
case EmailReceiveTimeType.last6Months:
|
case EmailReceiveTimeType.last6Months:
|
||||||
return AppLocalizations.of(context).last6Months;
|
return AppLocalizations.of(context).last6Months;
|
||||||
case EmailReceiveTimeType.lastYears:
|
case EmailReceiveTimeType.lastYear:
|
||||||
return AppLocalizations.of(context).lastYears;
|
return AppLocalizations.of(context).lastYears;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
UTCDate? toUTCDate() {
|
UTCDate? toUTCDate() {
|
||||||
switch(this) {
|
switch(this) {
|
||||||
case EmailReceiveTimeType.anyTime:
|
case EmailReceiveTimeType.allTime:
|
||||||
return null;
|
return null;
|
||||||
case EmailReceiveTimeType.last7Days:
|
case EmailReceiveTimeType.last7Days:
|
||||||
return UTCDate(DateTime.now().subtract(const Duration(days: 7)));
|
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)));
|
return UTCDate(DateTime.now().subtract(const Duration(days: 30)));
|
||||||
case EmailReceiveTimeType.last6Months:
|
case EmailReceiveTimeType.last6Months:
|
||||||
return UTCDate(DateTime.now().subtract(const Duration(days: 180)));
|
return UTCDate(DateTime.now().subtract(const Duration(days: 180)));
|
||||||
case EmailReceiveTimeType.lastYears:
|
case EmailReceiveTimeType.lastYear:
|
||||||
return UTCDate(DateTime.now().subtract(const Duration(days: 365)));
|
return UTCDate(DateTime.now().subtract(const Duration(days: 365)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+8
-14
@@ -1,16 +1,13 @@
|
|||||||
|
|
||||||
import 'package:core/core.dart';
|
import 'package:core/core.dart';
|
||||||
import 'package:flutter/cupertino.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';
|
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
|
||||||
|
|
||||||
enum QuickSearchFilter {
|
enum QuickSearchFilter {
|
||||||
hasAttachment,
|
hasAttachment,
|
||||||
last7Days,
|
last7Days,
|
||||||
fromMe
|
fromMe;
|
||||||
}
|
|
||||||
|
|
||||||
extension QuickSearchFilterExtension on QuickSearchFilter {
|
|
||||||
|
|
||||||
String getTitle(BuildContext context, {EmailReceiveTimeType? receiveTimeType}) {
|
String getTitle(BuildContext context, {EmailReceiveTimeType? receiveTimeType}) {
|
||||||
switch(this) {
|
switch(this) {
|
||||||
@@ -26,10 +23,9 @@ extension QuickSearchFilterExtension on QuickSearchFilter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String getIcon(ImagePaths imagePaths, List<QuickSearchFilter> listFilter) {
|
String getIcon(ImagePaths imagePaths, bool quickSearchFilterSelected) {
|
||||||
final filterSelected = listFilter.contains(this);
|
|
||||||
|
|
||||||
if (filterSelected) {
|
if (quickSearchFilterSelected) {
|
||||||
return imagePaths.icSelectedSB;
|
return imagePaths.icSelectedSB;
|
||||||
} else {
|
} else {
|
||||||
switch(this) {
|
switch(this) {
|
||||||
@@ -43,20 +39,18 @@ extension QuickSearchFilterExtension on QuickSearchFilter {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Color getBackgroundColor(List<QuickSearchFilter> listFilter) {
|
Color getBackgroundColor(bool quickSearchFilterSelected) {
|
||||||
final filterSelected = listFilter.contains(this);
|
|
||||||
|
|
||||||
if (filterSelected) {
|
if (quickSearchFilterSelected) {
|
||||||
return AppColor.colorItemEmailSelectedDesktop;
|
return AppColor.colorItemEmailSelectedDesktop;
|
||||||
} else {
|
} else {
|
||||||
return AppColor.colorButtonHeaderThread;
|
return AppColor.colorButtonHeaderThread;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TextStyle getTextStyle(List<QuickSearchFilter> listFilter) {
|
TextStyle getTextStyle(bool quickSearchFilterSelected) {
|
||||||
final filterSelected = listFilter.contains(this);
|
|
||||||
|
|
||||||
if (filterSelected) {
|
if (quickSearchFilterSelected) {
|
||||||
return const TextStyle(
|
return const TextStyle(
|
||||||
fontSize: 13,
|
fontSize: 13,
|
||||||
fontWeight: FontWeight.w500,
|
fontWeight: FontWeight.w500,
|
||||||
@@ -40,8 +40,8 @@ import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/mark_as_ma
|
|||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/remove_email_drafts_state.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/state/remove_email_drafts_state.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/action/dashboard_action.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/mailbox_dashboard_controller.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/mailbox_dashboard_controller.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/features/mailbox_dashboard/presentation/model/quick_search_filter.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/quick_search_filter.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/constants/thread_constants.dart';
|
import 'package:tmail_ui_user/features/thread/domain/constants/thread_constants.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/model/email_filter.dart';
|
import 'package:tmail_ui_user/features/thread/domain/model/email_filter.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart';
|
import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart';
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ import 'package:tmail_ui_user/features/email/presentation/model/composer_argumen
|
|||||||
import 'package:tmail_ui_user/features/email/presentation/widgets/email_action_cupertino_action_sheet_action_builder.dart';
|
import 'package:tmail_ui_user/features/email/presentation/widgets/email_action_cupertino_action_sheet_action_builder.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/recent_search.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/domain/model/recent_search.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/mixin/filter_email_popup_menu_mixin.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/mixin/filter_email_popup_menu_mixin.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/features/mailbox_dashboard/presentation/model/quick_search_filter.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/search/quick_search_filter.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/email_quick_search_item_tile_widget.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/email_quick_search_item_tile_widget.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/recent_search_item_tile_widget.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/widgets/recent_search_item_tile_widget.dart';
|
||||||
import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart';
|
import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart';
|
||||||
@@ -684,8 +684,7 @@ class ThreadView extends GetWidget<ThreadController> with AppLoaderMixin,
|
|||||||
fit: BoxFit.fill),
|
fit: BoxFit.fill),
|
||||||
const SizedBox(width: 4),
|
const SizedBox(width: 4),
|
||||||
Text(
|
Text(
|
||||||
filter.getTitle(context,
|
filter.getTitle(context, receiveTimeType: controller.mailboxDashBoardController.emailReceiveTimeType.value),
|
||||||
receiveTimeType: controller.mailboxDashBoardController.emailReceiveTimeType.value),
|
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
overflow: TextOverflow.ellipsis,
|
overflow: TextOverflow.ellipsis,
|
||||||
style: filter.getTextStyle(controller.mailboxDashBoardController.listFilterQuickSearch),
|
style: filter.getTextStyle(controller.mailboxDashBoardController.listFilterQuickSearch),
|
||||||
@@ -758,8 +757,7 @@ class ThreadView extends GetWidget<ThreadController> with AppLoaderMixin,
|
|||||||
fit: BoxFit.fill),
|
fit: BoxFit.fill),
|
||||||
const SizedBox(width: 4),
|
const SizedBox(width: 4),
|
||||||
Text(
|
Text(
|
||||||
filter.getTitle(context,
|
filter.getTitle(context, receiveTimeType: controller.mailboxDashBoardController.emailReceiveTimeType.value),
|
||||||
receiveTimeType: controller.mailboxDashBoardController.emailReceiveTimeType.value),
|
|
||||||
maxLines: 1,
|
maxLines: 1,
|
||||||
overflow: TextOverflow.ellipsis,
|
overflow: TextOverflow.ellipsis,
|
||||||
style: filter.getTextStyle(controller.mailboxDashBoardController.listFilterQuickSearch),
|
style: filter.getTextStyle(controller.mailboxDashBoardController.listFilterQuickSearch),
|
||||||
|
|||||||
@@ -1453,4 +1453,88 @@ class AppLocalizations {
|
|||||||
return Intl.message('Server URL is not valid, please try again',
|
return Intl.message('Server URL is not valid, please try again',
|
||||||
name: 'wrongUrlMessage');
|
name: 'wrongUrlMessage');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String get form {
|
||||||
|
return Intl.message(
|
||||||
|
'From',
|
||||||
|
name: 'form',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
String get to {
|
||||||
|
return Intl.message(
|
||||||
|
'To',
|
||||||
|
name: 'to',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
String get subject {
|
||||||
|
return Intl.message(
|
||||||
|
'Subject',
|
||||||
|
name: 'subject',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
String get hasTheWords {
|
||||||
|
return Intl.message(
|
||||||
|
'Has the words',
|
||||||
|
name: 'hasTheWords',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
String get doesNotHave {
|
||||||
|
return Intl.message(
|
||||||
|
'Doesn’t have',
|
||||||
|
name: 'doesNotHave',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
String get mailbox {
|
||||||
|
return Intl.message(
|
||||||
|
'Mailbox',
|
||||||
|
name: 'mailbox',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
String get nameOrEmailAddress {
|
||||||
|
return Intl.message(
|
||||||
|
'Name or email address',
|
||||||
|
name: 'nameOrEmailAddress',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
String get enterSearchTerm {
|
||||||
|
return Intl.message(
|
||||||
|
'Enter search term',
|
||||||
|
name: 'enterSearchTerm',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
String get allMails {
|
||||||
|
return Intl.message(
|
||||||
|
'All mails',
|
||||||
|
name: 'allMails',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
String get allTime {
|
||||||
|
return Intl.message(
|
||||||
|
'All time',
|
||||||
|
name: 'allTime',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
String get search {
|
||||||
|
return Intl.message(
|
||||||
|
'Search',
|
||||||
|
name: 'search',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
String get clearFilter {
|
||||||
|
return Intl.message(
|
||||||
|
'Clear filter',
|
||||||
|
name: 'clearFilter',
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user