import 'package:flutter/cupertino.dart'; import 'package:jmap_dart_client/jmap/mail/email/email_address.dart'; import 'package:model/email/email_action_type.dart'; import 'package:model/email/presentation_email.dart'; import 'package:tmail_ui_user/features/base/action/ui_action.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/quick_search_filter.dart'; import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart'; import 'package:tmail_ui_user/main/routes/navigation_router.dart'; class DashBoardAction extends UIAction { static final idle = DashBoardAction(); DashBoardAction() : super(); @override List get props => []; } class RefreshAllEmailAction extends DashBoardAction {} class SelectionAllEmailAction extends DashBoardAction {} class CancelSelectionAllEmailAction extends DashBoardAction {} class FilterMessageAction extends DashBoardAction { final BuildContext context; final FilterMessageOption option; FilterMessageAction(this.context, this.option); @override List get props => [context, option]; } class HandleEmailActionTypeAction extends DashBoardAction { final BuildContext context; final EmailActionType emailAction; final List listEmailSelected; HandleEmailActionTypeAction(this.context, this.listEmailSelected, this.emailAction); @override List get props => [context, listEmailSelected, emailAction]; } class OpenEmailDetailedFromSuggestionQuickSearchAction extends DashBoardAction { final BuildContext context; final PresentationEmail presentationEmail; OpenEmailDetailedFromSuggestionQuickSearchAction(this.context, this.presentationEmail); @override List get props => [context, presentationEmail]; } class StartSearchEmailAction extends DashBoardAction { final QuickSearchFilter? filter; StartSearchEmailAction({this.filter}); @override List get props => [filter]; } class EmptyTrashAction extends DashBoardAction { final BuildContext context; EmptyTrashAction(this.context); @override List get props => [context]; } class ClearSearchEmailAction extends DashBoardAction {} class ClearAllFieldOfAdvancedSearchAction extends DashBoardAction {} class SelectEmailByIdAction extends DashBoardAction { final NavigationRouter navigationRouter; SelectEmailByIdAction(this.navigationRouter); @override List get props => [navigationRouter]; } class SearchEmailByQueryAction extends DashBoardAction { final NavigationRouter navigationRouter; SearchEmailByQueryAction(this.navigationRouter); @override List get props => [navigationRouter]; } class SelectDateRangeToAdvancedSearch extends DashBoardAction { final DateTime? startDate; final DateTime? endDate; SelectDateRangeToAdvancedSearch(this.startDate, this.endDate); @override List get props => [startDate, endDate]; } class ClearDateRangeToAdvancedSearch extends DashBoardAction { final EmailReceiveTimeType receiveTime; ClearDateRangeToAdvancedSearch(this.receiveTime); @override List get props => [receiveTime]; } class SearchEmailByFromFieldsAction extends DashBoardAction { final EmailAddress emailAddress; SearchEmailByFromFieldsAction(this.emailAddress); @override List get props => [emailAddress]; }