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    NextSearchResult,
34    PrevSearchResult,
35    // Gmail go-to navigation (A005)
36    GoToInbox,
37    GoToStarred,
38    GoToSent,
39    GoToDrafts,
40    GoToAllMail,
41    OpenSubscriptions,
42    GoToLabel,
43    // Command palette
44    OpenCommandPalette,
45    CloseCommandPalette,
46    // Sync
47    SyncNow,
48    // Message view
49    OpenMessageView,
50    CloseMessageView,
51    ToggleMailListMode,
52    // Label / saved search selection
53    SelectLabel(mxr_core::LabelId),
54    SelectSavedSearch(String),
55    ClearFilter,
56    RefreshRules,
57    ToggleRuleEnabled,
58    DeleteRule,
59    ShowRuleHistory,
60    ShowRuleDryRun,
61    OpenRuleFormNew,
62    OpenRuleFormEdit,
63    SaveRuleForm,
64    RefreshDiagnostics,
65    RefreshAccounts,
66    OpenAccountFormNew,
67    SaveAccountForm,
68    TestAccountForm,
69    ReauthorizeAccountForm,
70    SetDefaultAccount,
71    GenerateBugReport,
72
73    // --- Phase 2: Email actions (Gmail-native A005) ---
74    Compose,
75    Reply,
76    ReplyAll,
77    Forward,
78    Archive,
79    Trash,
80    Spam,
81    Star,
82    MarkRead,
83    MarkUnread,
84    ApplyLabel,
85    MoveToLabel,
86    Unsubscribe,
87    ConfirmUnsubscribeOnly,
88    ConfirmUnsubscribeAndArchiveSender,
89    CancelUnsubscribe,
90    Snooze,
91    OpenInBrowser,
92
93    // --- Phase 2: Reader mode ---
94    ToggleReaderMode,
95    ToggleSignature,
96
97    // --- Phase 2: Batch operations (A007) ---
98    ToggleSelect,
99    VisualLineMode,
100    PatternSelect(PatternKind),
101
102    // --- Phase 2: Attachments ---
103    AttachmentList,
104
105    // --- Phase 2: Links ---
106    OpenLinks,
107
108    // --- Phase 2: Layout ---
109    ToggleFullscreen,
110
111    // --- Phase 2: Export ---
112    ExportThread,
113
114    // Help
115    Help,
116
117    // No-op (for unrecognized keys)
118    Noop,
119}
120
121#[derive(Debug, Clone, PartialEq, Eq)]
122pub enum PatternKind {
123    All,
124    None,
125    Read,
126    Unread,
127    Starred,
128    Thread,
129}