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
74    // --- Phase 2: Email actions (Gmail-native A005) ---
75    Compose,
76    Reply,
77    ReplyAll,
78    Forward,
79    Archive,
80    Trash,
81    Spam,
82    Star,
83    MarkRead,
84    MarkUnread,
85    ApplyLabel,
86    MoveToLabel,
87    Unsubscribe,
88    ConfirmUnsubscribeOnly,
89    ConfirmUnsubscribeAndArchiveSender,
90    CancelUnsubscribe,
91    Snooze,
92    OpenInBrowser,
93
94    // --- Phase 2: Reader mode ---
95    ToggleReaderMode,
96    ToggleSignature,
97
98    // --- Phase 2: Batch operations (A007) ---
99    ToggleSelect,
100    VisualLineMode,
101    PatternSelect(PatternKind),
102
103    // --- Phase 2: Attachments ---
104    AttachmentList,
105
106    // --- Phase 2: Links ---
107    OpenLinks,
108
109    // --- Phase 2: Layout ---
110    ToggleFullscreen,
111
112    // --- Phase 2: Export ---
113    ExportThread,
114
115    // Help
116    Help,
117
118    // No-op (for unrecognized keys)
119    Noop,
120}
121
122#[derive(Debug, Clone, PartialEq, Eq)]
123pub enum PatternKind {
124    All,
125    None,
126    Read,
127    Unread,
128    Starred,
129    Thread,
130}