import 'package:jmap_dart_client/jmap/mail/email/email.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:model/mailbox/presentation_mailbox.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/email_sort_order_type.dart'; import 'package:tmail_ui_user/features/thread/domain/model/filter_message_option.dart'; import 'package:tmail_ui_user/features/thread/domain/model/search_query.dart'; class DashBoardAction extends UIAction { static final idle = DashBoardAction(); DashBoardAction() : super(); @override List get props => []; } class SelectionAllEmailAction extends DashBoardAction {} class CancelSelectionAllEmailAction extends DashBoardAction {} class FilterMessageAction extends DashBoardAction { final FilterMessageOption option; FilterMessageAction(this.option); @override List get props => [option]; } class HandleEmailActionTypeAction extends DashBoardAction { final EmailActionType emailAction; final List listEmailSelected; HandleEmailActionTypeAction(this.listEmailSelected, this.emailAction); @override List get props => [listEmailSelected, emailAction]; } class OpenEmailDetailedFromSuggestionQuickSearchAction extends DashBoardAction { final PresentationEmail presentationEmail; OpenEmailDetailedFromSuggestionQuickSearchAction(this.presentationEmail); @override List get props => [presentationEmail]; } class StartSearchEmailAction extends DashBoardAction {} class EmptyTrashAction extends DashBoardAction {} class ClearAllFieldOfAdvancedSearchAction extends DashBoardAction {} class OpenEmailInsideMailboxFromLocationBar extends DashBoardAction { final EmailId emailId; final PresentationMailbox presentationMailbox; OpenEmailInsideMailboxFromLocationBar(this.emailId, this.presentationMailbox); @override List get props => [emailId, presentationMailbox]; } class OpenEmailWithoutMailboxFromLocationBar extends DashBoardAction { final EmailId emailId; OpenEmailWithoutMailboxFromLocationBar(this.emailId); @override List get props => [emailId]; } class OpenEmailSearchedFromLocationBar extends DashBoardAction { final EmailId emailId; final SearchQuery? searchQuery; OpenEmailSearchedFromLocationBar( this.emailId, { this.searchQuery, } ); @override List get props => [emailId, searchQuery]; } class SearchEmailFromLocationBar extends DashBoardAction { final SearchQuery searchQuery; SearchEmailFromLocationBar(this.searchQuery); @override List get props => [searchQuery]; } 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 QuickSearchEmailByFromAction extends DashBoardAction { final EmailAddress emailAddress; QuickSearchEmailByFromAction(this.emailAddress); @override List get props => [emailAddress]; } class CloseSearchEmailViewAction extends DashBoardAction {} class CancelSelectionSearchEmailAction extends DashBoardAction {} class OpenAdvancedSearchViewAction extends DashBoardAction {} class ClearSearchFilterAppliedAction extends DashBoardAction {} class ClearAdvancedSearchFilterEmailAction extends DashBoardAction {} class SynchronizeEmailSortOrderAction extends DashBoardAction { final EmailSortOrderType emailSortOrderType; SynchronizeEmailSortOrderAction(this.emailSortOrderType); @override List get props => [emailSortOrderType]; } class ReclaimMailListKeyboardShortcutFocusAction extends DashBoardAction {} class ClearMailListKeyboardShortcutFocusAction extends DashBoardAction {}