Skip to main content

mxr_tui/
action.rs

1#[derive(Debug, Clone, PartialEq, Eq)]
2pub enum Action {
3    // Navigation (vim-native)
4    MoveDown,
5    MoveUp,
6    JumpTop,
7    JumpBottom,
8    PageDown,
9    PageUp,
10    ViewportTop,
11    ViewportMiddle,
12    ViewportBottom,
13    CenterCurrent,
14    SwitchPane,
15    OpenSelected,
16    Back,
17    QuitView,
18    ClearSelection,
19    OpenMailboxScreen,
20    OpenSearchScreen,
21    OpenRulesScreen,
22    OpenDiagnosticsScreen,
23    OpenAccountsScreen,
24    OpenTab1,
25    OpenTab2,
26    OpenTab3,
27    OpenTab4,
28    OpenTab5,
29    // Search
30    OpenSearch,
31    SubmitSearch,
32    CloseSearch,
33    CycleSearchMode,
34    NextSearchResult,
35    PrevSearchResult,
36    // Gmail go-to navigation (A005)
37    GoToInbox,
38    GoToStarred,
39    GoToSent,
40    GoToDrafts,
41    GoToAllMail,
42    OpenSubscriptions,
43    GoToLabel,
44    // Command palette
45    OpenCommandPalette,
46    CloseCommandPalette,
47    // Sync
48    SyncNow,
49    // Message view
50    OpenMessageView,
51    CloseMessageView,
52    ToggleMailListMode,
53    // Label / saved search selection
54    SelectLabel(mxr_core::LabelId),
55    SelectSavedSearch(String, mxr_core::SearchMode),
56    ClearFilter,
57    RefreshRules,
58    ToggleRuleEnabled,
59    DeleteRule,
60    ShowRuleHistory,
61    ShowRuleDryRun,
62    OpenRuleFormNew,
63    OpenRuleFormEdit,
64    SaveRuleForm,
65    RefreshDiagnostics,
66    RefreshAccounts,
67    OpenAccountFormNew,
68    SaveAccountForm,
69    TestAccountForm,
70    ReauthorizeAccountForm,
71    SetDefaultAccount,
72    GenerateBugReport,
73    EditConfig,
74    OpenLogs,
75    OpenDiagnosticsPaneDetails,
76
77    // --- Phase 2: Email actions (Gmail-native A005) ---
78    Compose,
79    Reply,
80    ReplyAll,
81    Forward,
82    Archive,
83    MarkReadAndArchive,
84    Trash,
85    Spam,
86    Star,
87    MarkRead,
88    MarkUnread,
89    ApplyLabel,
90    MoveToLabel,
91    Unsubscribe,
92    ConfirmUnsubscribeOnly,
93    ConfirmUnsubscribeAndArchiveSender,
94    CancelUnsubscribe,
95    Snooze,
96    OpenInBrowser,
97
98    // --- Phase 2: Reader mode ---
99    ToggleReaderMode,
100    ToggleSignature,
101
102    // --- Phase 2: Batch operations (A007) ---
103    ToggleSelect,
104    VisualLineMode,
105    PatternSelect(PatternKind),
106
107    // --- Phase 2: Attachments ---
108    AttachmentList,
109
110    // --- Phase 2: Links ---
111    OpenLinks,
112
113    // --- Phase 2: Layout ---
114    ToggleFullscreen,
115
116    // --- Phase 2: Export ---
117    ExportThread,
118
119    // Help
120    Help,
121
122    // No-op (for unrecognized keys)
123    Noop,
124}
125
126#[derive(Debug, Clone, PartialEq, Eq)]
127pub enum PatternKind {
128    All,
129    None,
130    Read,
131    Unread,
132    Starred,
133    Thread,
134}