@knpkv/codecommit 0.1.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/dist/package.json +1 -1
  2. package/dist/src/tui/Constants.d.ts +0 -7
  3. package/dist/src/tui/Constants.d.ts.map +1 -1
  4. package/dist/src/tui/Constants.js +5 -31
  5. package/dist/src/tui/Constants.js.map +1 -1
  6. package/dist/src/tui/ListBuilder.d.ts.map +1 -1
  7. package/dist/src/tui/ListBuilder.js +19 -6
  8. package/dist/src/tui/ListBuilder.js.map +1 -1
  9. package/dist/src/tui/atoms/actions.d.ts +5 -0
  10. package/dist/src/tui/atoms/actions.d.ts.map +1 -1
  11. package/dist/src/tui/atoms/actions.js +14 -2
  12. package/dist/src/tui/atoms/actions.js.map +1 -1
  13. package/dist/src/tui/atoms/ui.d.ts +19 -2
  14. package/dist/src/tui/atoms/ui.d.ts.map +1 -1
  15. package/dist/src/tui/atoms/ui.js +14 -1
  16. package/dist/src/tui/atoms/ui.js.map +1 -1
  17. package/dist/src/tui/components/DetailsView.d.ts.map +1 -1
  18. package/dist/src/tui/components/DetailsView.js +70 -6
  19. package/dist/src/tui/components/DetailsView.js.map +1 -1
  20. package/dist/src/tui/components/ListItemRow.d.ts.map +1 -1
  21. package/dist/src/tui/components/ListItemRow.js +27 -12
  22. package/dist/src/tui/components/ListItemRow.js.map +1 -1
  23. package/dist/src/tui/components/MainList.js +2 -2
  24. package/dist/src/tui/components/MainList.js.map +1 -1
  25. package/dist/src/tui/components/QuickFilters.d.ts.map +1 -1
  26. package/dist/src/tui/components/QuickFilters.js +8 -42
  27. package/dist/src/tui/components/QuickFilters.js.map +1 -1
  28. package/dist/src/tui/components/SettingsAboutTab.d.ts +2 -0
  29. package/dist/src/tui/components/SettingsAboutTab.d.ts.map +1 -0
  30. package/dist/src/tui/components/SettingsAboutTab.js +7 -0
  31. package/dist/src/tui/components/SettingsAboutTab.js.map +1 -0
  32. package/dist/src/tui/components/SettingsAccountsTab.d.ts +8 -0
  33. package/dist/src/tui/components/SettingsAccountsTab.d.ts.map +1 -0
  34. package/dist/src/tui/components/{SettingsTable.js → SettingsAccountsTab.js} +4 -14
  35. package/dist/src/tui/components/SettingsAccountsTab.js.map +1 -0
  36. package/dist/src/tui/components/SettingsConfigTab.d.ts +2 -0
  37. package/dist/src/tui/components/SettingsConfigTab.d.ts.map +1 -0
  38. package/dist/src/tui/components/SettingsConfigTab.js +10 -0
  39. package/dist/src/tui/components/SettingsConfigTab.js.map +1 -0
  40. package/dist/src/tui/components/SettingsThemeTab.d.ts +2 -0
  41. package/dist/src/tui/components/SettingsThemeTab.d.ts.map +1 -0
  42. package/dist/src/tui/components/SettingsThemeTab.js +24 -0
  43. package/dist/src/tui/components/SettingsThemeTab.js.map +1 -0
  44. package/dist/src/tui/components/SettingsView.d.ts +8 -0
  45. package/dist/src/tui/components/SettingsView.d.ts.map +1 -0
  46. package/dist/src/tui/components/SettingsView.js +33 -0
  47. package/dist/src/tui/components/SettingsView.js.map +1 -0
  48. package/dist/src/tui/components/index.d.ts +1 -1
  49. package/dist/src/tui/components/index.d.ts.map +1 -1
  50. package/dist/src/tui/components/index.js +1 -1
  51. package/dist/src/tui/components/index.js.map +1 -1
  52. package/dist/src/tui/hooks/useKeyboardNav.d.ts +0 -1
  53. package/dist/src/tui/hooks/useKeyboardNav.d.ts.map +1 -1
  54. package/dist/src/tui/hooks/useKeyboardNav.js +131 -85
  55. package/dist/src/tui/hooks/useKeyboardNav.js.map +1 -1
  56. package/dist/src/tui/ui/DialogCommand.d.ts.map +1 -1
  57. package/dist/src/tui/ui/DialogCommand.js +47 -25
  58. package/dist/src/tui/ui/DialogCommand.js.map +1 -1
  59. package/dist/src/tui/ui/index.d.ts +0 -2
  60. package/dist/src/tui/ui/index.d.ts.map +1 -1
  61. package/dist/src/tui/ui/index.js +0 -2
  62. package/dist/src/tui/ui/index.js.map +1 -1
  63. package/dist/tsconfig.tsbuildinfo +1 -1
  64. package/package.json +3 -3
  65. package/dist/src/tui/components/SettingsTable.d.ts +0 -12
  66. package/dist/src/tui/components/SettingsTable.d.ts.map +0 -1
  67. package/dist/src/tui/components/SettingsTable.js.map +0 -1
  68. package/dist/src/tui/ui/DialogHelp.d.ts +0 -6
  69. package/dist/src/tui/ui/DialogHelp.d.ts.map +0 -1
  70. package/dist/src/tui/ui/DialogHelp.js +0 -93
  71. package/dist/src/tui/ui/DialogHelp.js.map +0 -1
  72. package/dist/src/tui/ui/DialogTheme.d.ts +0 -2
  73. package/dist/src/tui/ui/DialogTheme.d.ts.map +0 -1
  74. package/dist/src/tui/ui/DialogTheme.js +0 -124
  75. package/dist/src/tui/ui/DialogTheme.js.map +0 -1
@@ -1,16 +1,14 @@
1
1
  import { jsx as _jsx } from "@opentui/react/jsx-runtime";
2
2
  import { Result, useAtomSet, useAtomValue } from "@effect-atom/atom-react";
3
3
  import { useKeyboard } from "@opentui/react";
4
- import { useMemo, useRef } from "react";
4
+ import { useEffect, useMemo, useRef } from "react";
5
5
  import { loginToAwsAtom } from "../atoms/actions.js";
6
6
  import { appStateAtom, clearNotificationsAtom, notificationsAtom, refreshAtom, setAllAccountsAtom } from "../atoms/app.js";
7
- import { currentPRAtom, currentUserAtom, exitPendingAtom, filterTextAtom, isFilteringAtom, isSettingsFilteringAtom, quickFilterTypeAtom, quickFilterValuesAtom, selectedIndexAtom, settingsFilterAtom, viewAtom } from "../atoms/ui.js";
7
+ import { currentPRAtom, currentUserAtom, exitPendingAtom, filterTextAtom, isFilteringAtom, isSettingsFilteringAtom, quickFilterTypeAtom, quickFilterValuesAtom, selectedIndexAtom, settingsFilterAtom, SettingsTabs, settingsTabAtom, showDetailsCommentsAtom, themeAtom, themeSelectionIndexAtom, viewAtom } from "../atoms/ui.js";
8
8
  import { useDialog } from "../context/dialog.js";
9
9
  import { extractScope } from "../ListBuilder.js";
10
+ import { themes } from "../theme/themes.js";
10
11
  import { DialogCommand } from "../ui/DialogCommand.js";
11
- import { DialogCreatePR } from "../ui/DialogCreatePR.js";
12
- import { DialogHelp } from "../ui/DialogHelp.js";
13
- import { DialogTheme } from "../ui/DialogTheme.js";
14
12
  const defaultState = {
15
13
  status: "loading",
16
14
  pullRequests: [],
@@ -18,7 +16,6 @@ const defaultState = {
18
16
  };
19
17
  /**
20
18
  * Keyboard navigation hook for the TUI
21
- * Handles global keybindings for view switching, filtering, help, etc.
22
19
  * @category hooks
23
20
  */
24
21
  export function useKeyboardNav({ onOpenInBrowser, onQuit }) {
@@ -38,6 +35,10 @@ export function useKeyboardNav({ onOpenInBrowser, onQuit }) {
38
35
  const exitPending = useAtomValue(exitPendingAtom);
39
36
  const setExitPending = useAtomSet(exitPendingAtom);
40
37
  const exitTimeoutRef = useRef(null);
38
+ useEffect(() => () => {
39
+ if (exitTimeoutRef.current)
40
+ clearTimeout(exitTimeoutRef.current);
41
+ }, []);
41
42
  // Quick filter state
42
43
  const quickFilterType = useAtomValue(quickFilterTypeAtom);
43
44
  const setQuickFilterType = useAtomSet(quickFilterTypeAtom);
@@ -47,12 +48,20 @@ export function useKeyboardNav({ onOpenInBrowser, onQuit }) {
47
48
  const setCurrentUser = useAtomSet(currentUserAtom);
48
49
  const appStateResult = useAtomValue(appStateAtom);
49
50
  const appState = Result.getOrElse(appStateResult, () => defaultState);
50
- // Settings filter state
51
+ // Settings state
51
52
  const settingsFilter = useAtomValue(settingsFilterAtom);
52
53
  const setSettingsFilter = useAtomSet(settingsFilterAtom);
53
54
  const isSettingsFiltering = useAtomValue(isSettingsFilteringAtom);
54
55
  const setIsSettingsFiltering = useAtomSet(isSettingsFilteringAtom);
55
56
  const setAllAccounts = useAtomSet(setAllAccountsAtom);
57
+ const showDetailsComments = useAtomValue(showDetailsCommentsAtom);
58
+ const setShowDetailsComments = useAtomSet(showDetailsCommentsAtom);
59
+ const settingsTab = useAtomValue(settingsTabAtom);
60
+ const setSettingsTab = useAtomSet(settingsTabAtom);
61
+ const themeSelectionIndex = useAtomValue(themeSelectionIndexAtom);
62
+ const setThemeSelectionIndex = useAtomSet(themeSelectionIndexAtom);
63
+ const setThemeId = useAtomSet(themeAtom);
64
+ const themeNames = useMemo(() => Object.keys(themes).sort(), []);
56
65
  // Extract unique authors, accounts, scopes, and repos
57
66
  const { accounts, authors, myScopes, repos, scopes } = useMemo(() => {
58
67
  const authorSet = new Set();
@@ -80,24 +89,24 @@ export function useKeyboardNav({ onOpenInBrowser, onQuit }) {
80
89
  repos: Array.from(repoSet).sort()
81
90
  };
82
91
  }, [appState.pullRequests, currentUser]);
83
- // Sync currentUser from appState (set via STS getCallerIdentity)
84
- useMemo(() => {
92
+ // Sync currentUser from appState
93
+ useEffect(() => {
85
94
  if (appState.currentUser && appState.currentUser !== currentUser) {
86
95
  setCurrentUser(appState.currentUser);
87
96
  }
88
97
  }, [appState.currentUser, currentUser, setCurrentUser]);
89
98
  const dialog = useDialog();
90
99
  useKeyboard((key) => {
91
- // If a dialog is open, don't process global keys (except command palette trigger)
100
+ // If a dialog is open, don't process global keys
92
101
  if (dialog.current) {
93
102
  return;
94
103
  }
95
- // Handle Ctrl+P, Cmd+P, or ":" for command palette
104
+ // Command palette: Ctrl+P, Cmd+P, ":"
96
105
  if ((key.name === "p" && (key.meta || key.ctrl)) || key.char === ":" || key.name === ":") {
97
106
  dialog.show(() => _jsx(DialogCommand, {}));
98
107
  return;
99
108
  }
100
- // Handle Ctrl+C (Double press to exit)
109
+ // Ctrl+C double-press to exit
101
110
  if (key.name === "c" && key.ctrl) {
102
111
  if (exitPending) {
103
112
  onQuit();
@@ -112,7 +121,7 @@ export function useKeyboardNav({ onOpenInBrowser, onQuit }) {
112
121
  }
113
122
  return;
114
123
  }
115
- // Handle filter mode input (PRs)
124
+ // Filter mode input (PRs)
116
125
  if (isFiltering) {
117
126
  if (key.name === "escape") {
118
127
  setIsFiltering(false);
@@ -125,7 +134,6 @@ export function useKeyboardNav({ onOpenInBrowser, onQuit }) {
125
134
  setFilterText(filterText.slice(0, -1));
126
135
  }
127
136
  else {
128
- // Try key.char first, fallback to key.name for single printable chars
129
137
  const char = key.char || (key.name?.length === 1 ? key.name : null);
130
138
  if (char && char.length === 1) {
131
139
  setFilterText(filterText + char);
@@ -133,7 +141,7 @@ export function useKeyboardNav({ onOpenInBrowser, onQuit }) {
133
141
  }
134
142
  return;
135
143
  }
136
- // Handle settings filter mode input
144
+ // Settings filter mode input
137
145
  if (isSettingsFiltering) {
138
146
  if (key.name === "escape") {
139
147
  setIsSettingsFiltering(false);
@@ -146,7 +154,6 @@ export function useKeyboardNav({ onOpenInBrowser, onQuit }) {
146
154
  setSettingsFilter(settingsFilter.slice(0, -1));
147
155
  }
148
156
  else if (key.name === "left" || key.name === "right") {
149
- // Cycle through filter modes: "" <-> "on:" <-> "off:"
150
157
  const modes = ["", "on:", "off:"];
151
158
  const currentPrefix = settingsFilter.startsWith("on:") ? "on:" : settingsFilter.startsWith("off:") ? "off:" : "";
152
159
  const nameFilter = currentPrefix ? settingsFilter.slice(currentPrefix.length) : settingsFilter;
@@ -164,51 +171,101 @@ export function useKeyboardNav({ onOpenInBrowser, onQuit }) {
164
171
  }
165
172
  return;
166
173
  }
167
- // Handle "/" or "f" filter shortcut
174
+ // "/" or "f" filter shortcut
168
175
  if (key.name === "/" || key.char === "/" || key.name === "f") {
169
- if (view === "settings") {
176
+ if (view === "settings" && settingsTab === "accounts") {
170
177
  setIsSettingsFiltering(true);
171
178
  }
172
- else {
179
+ else if (view !== "settings") {
173
180
  setIsFiltering(true);
174
181
  setView("prs");
175
182
  }
176
183
  return;
177
184
  }
178
- // Handle settings view shortcuts
185
+ // Settings view keybindings
179
186
  if (view === "settings") {
180
- if (key.name === "a") {
181
- // Get filtered profiles if filter is active
182
- const profiles = settingsFilter
183
- ? appState.accounts
184
- .filter((a) => a.profile.toLowerCase().includes(settingsFilter.toLowerCase()))
185
- .map((a) => a.profile)
186
- : null;
187
- setAllAccounts({ enabled: true, ...(profiles && { profiles }) });
187
+ // Tab: cycle settings tabs
188
+ if (key.name === "tab") {
189
+ const idx = SettingsTabs.indexOf(settingsTab);
190
+ const next = SettingsTabs[(idx + 1) % SettingsTabs.length];
191
+ setSettingsTab(next);
188
192
  return;
189
193
  }
190
- if (key.name === "d") {
191
- const profiles = settingsFilter
192
- ? appState.accounts
193
- .filter((a) => a.profile.toLowerCase().includes(settingsFilter.toLowerCase()))
194
- .map((a) => a.profile)
195
- : null;
196
- setAllAccounts({ enabled: false, ...(profiles && { profiles }) });
194
+ // 1-4: jump to settings tab
195
+ if (key.name === "1") {
196
+ setSettingsTab("accounts");
197
197
  return;
198
198
  }
199
- // Cycle filter modes with arrows (even when not in filter input mode)
200
- if (key.name === "left" || key.name === "right") {
201
- const modes = ["", "on:", "off:"];
202
- const currentPrefix = settingsFilter.startsWith("on:") ? "on:" : settingsFilter.startsWith("off:") ? "off:" : "";
203
- const nameFilter = currentPrefix ? settingsFilter.slice(currentPrefix.length) : settingsFilter;
204
- const idx = modes.indexOf(currentPrefix);
205
- const nextIdx = key.name === "right" ? (idx + 1) % modes.length : (idx - 1 + modes.length) % modes.length;
206
- const nextMode = modes[nextIdx] ?? "";
207
- setSettingsFilter(nextMode + nameFilter);
199
+ if (key.name === "2") {
200
+ setSettingsTab("theme");
201
+ return;
202
+ }
203
+ if (key.name === "3") {
204
+ setSettingsTab("config");
205
+ return;
206
+ }
207
+ if (key.name === "4") {
208
+ setSettingsTab("about");
209
+ return;
210
+ }
211
+ // Theme tab: up/down to navigate, enter to select
212
+ if (settingsTab === "theme") {
213
+ if (key.name === "up") {
214
+ setThemeSelectionIndex(Math.max(0, themeSelectionIndex - 1));
215
+ return;
216
+ }
217
+ if (key.name === "down") {
218
+ setThemeSelectionIndex(Math.min(themeNames.length - 1, themeSelectionIndex + 1));
219
+ return;
220
+ }
221
+ if (key.name === "return") {
222
+ const selected = themeNames[themeSelectionIndex];
223
+ if (selected)
224
+ setThemeId(selected);
225
+ return;
226
+ }
227
+ }
228
+ // Accounts tab specific
229
+ if (settingsTab === "accounts") {
230
+ if (key.name === "a") {
231
+ const profiles = settingsFilter
232
+ ? appState.accounts
233
+ .filter((a) => a.profile.toLowerCase().includes(settingsFilter.toLowerCase()))
234
+ .map((a) => a.profile)
235
+ : null;
236
+ setAllAccounts({ enabled: true, ...(profiles && { profiles }) });
237
+ return;
238
+ }
239
+ if (key.name === "d") {
240
+ const profiles = settingsFilter
241
+ ? appState.accounts
242
+ .filter((a) => a.profile.toLowerCase().includes(settingsFilter.toLowerCase()))
243
+ .map((a) => a.profile)
244
+ : null;
245
+ setAllAccounts({ enabled: false, ...(profiles && { profiles }) });
246
+ return;
247
+ }
248
+ if (key.name === "left" || key.name === "right") {
249
+ const modes = ["", "on:", "off:"];
250
+ const currentPrefix = settingsFilter.startsWith("on:")
251
+ ? "on:"
252
+ : settingsFilter.startsWith("off:")
253
+ ? "off:"
254
+ : "";
255
+ const nameFilter = currentPrefix ? settingsFilter.slice(currentPrefix.length) : settingsFilter;
256
+ const idx = modes.indexOf(currentPrefix);
257
+ const nextIdx = key.name === "right" ? (idx + 1) % modes.length : (idx - 1 + modes.length) % modes.length;
258
+ const nextMode = modes[nextIdx] ?? "";
259
+ setSettingsFilter(nextMode + nameFilter);
260
+ return;
261
+ }
262
+ }
263
+ if (key.name === "escape") {
264
+ setView("prs");
208
265
  return;
209
266
  }
210
267
  }
211
- // Handle details view
268
+ // Details view
212
269
  if (view === "details") {
213
270
  if (key.name === "escape") {
214
271
  setView("prs");
@@ -216,39 +273,25 @@ export function useKeyboardNav({ onOpenInBrowser, onQuit }) {
216
273
  else if (key.name === "return" && currentPR && onOpenInBrowser) {
217
274
  onOpenInBrowser(currentPR);
218
275
  }
276
+ else if (key.char === "c" || key.name === "c") {
277
+ setShowDetailsComments(!showDetailsComments);
278
+ }
279
+ else if (key.name === "1") {
280
+ setShowDetailsComments(false);
281
+ }
282
+ else if (key.name === "2") {
283
+ setShowDetailsComments(true);
284
+ }
219
285
  return;
220
286
  }
221
- // Global keybindings
287
+ // Global keybindings (prs + notifications views)
222
288
  switch (key.name) {
223
289
  case "q":
224
290
  onQuit();
225
291
  break;
226
- case "h":
227
- dialog.show(() => _jsx(DialogHelp, {}));
228
- break;
229
292
  case "r":
230
293
  refresh();
231
294
  break;
232
- case "l": {
233
- const authError = notifications.items.find((e) => /ExpiredToken|Unauthorized|AuthFailure|SSO|token|credentials/i.test(e.message));
234
- if (authError) {
235
- const profile = authError.title.replace(/\s*\(.*$/, "");
236
- if (profile)
237
- loginToAws(profile);
238
- }
239
- break;
240
- }
241
- case "c":
242
- if (view === "notifications") {
243
- clearNotifications();
244
- }
245
- else if (view === "prs") {
246
- dialog.show(() => _jsx(DialogCreatePR, {}));
247
- }
248
- break;
249
- case "t":
250
- dialog.show(() => _jsx(DialogTheme, {}));
251
- break;
252
295
  case "escape":
253
296
  if (filterText) {
254
297
  setFilterText("");
@@ -257,12 +300,6 @@ export function useKeyboardNav({ onOpenInBrowser, onQuit }) {
257
300
  setView("prs");
258
301
  }
259
302
  break;
260
- case "s":
261
- setView(view === "settings" ? "prs" : "settings");
262
- break;
263
- case "n":
264
- setView(view === "notifications" ? "prs" : "notifications");
265
- break;
266
303
  case "return":
267
304
  if (view === "prs" && currentPR) {
268
305
  setView("details");
@@ -282,12 +319,24 @@ export function useKeyboardNav({ onOpenInBrowser, onQuit }) {
282
319
  onOpenInBrowser(currentPR);
283
320
  }
284
321
  break;
285
- // Quick filter shortcuts (1-4)
322
+ case "n":
323
+ setView(view === "notifications" ? "prs" : "notifications");
324
+ break;
325
+ case "c":
326
+ if (view === "notifications") {
327
+ clearNotifications();
328
+ }
329
+ break;
330
+ // Quick filter shortcuts (1-9) — only in prs view
286
331
  case "1":
287
332
  if (view === "prs")
288
333
  setQuickFilterType("all");
289
334
  break;
290
335
  case "2":
336
+ if (view === "prs")
337
+ setQuickFilterType("hot");
338
+ break;
339
+ case "3":
291
340
  if (view === "prs") {
292
341
  setQuickFilterType("mine");
293
342
  if (!quickFilterValues.mine && myScopes.length > 0) {
@@ -295,16 +344,15 @@ export function useKeyboardNav({ onOpenInBrowser, onQuit }) {
295
344
  }
296
345
  }
297
346
  break;
298
- case "3":
347
+ case "4":
299
348
  if (view === "prs") {
300
349
  setQuickFilterType("account");
301
- // Initialize value for this type if empty
302
350
  if (!quickFilterValues.account && accounts.length > 0) {
303
351
  setQuickFilterValues({ ...quickFilterValues, account: accounts[0] });
304
352
  }
305
353
  }
306
354
  break;
307
- case "4":
355
+ case "5":
308
356
  if (view === "prs") {
309
357
  setQuickFilterType("author");
310
358
  if (!quickFilterValues.author && authors.length > 0) {
@@ -312,7 +360,7 @@ export function useKeyboardNav({ onOpenInBrowser, onQuit }) {
312
360
  }
313
361
  }
314
362
  break;
315
- case "5":
363
+ case "6":
316
364
  if (view === "prs") {
317
365
  setQuickFilterType("scope");
318
366
  if (!quickFilterValues.scope && scopes.length > 0) {
@@ -320,13 +368,12 @@ export function useKeyboardNav({ onOpenInBrowser, onQuit }) {
320
368
  }
321
369
  }
322
370
  break;
323
- case "6":
371
+ case "7":
324
372
  if (view === "prs") {
325
373
  setQuickFilterType("date");
326
- // date already has default "today"
327
374
  }
328
375
  break;
329
- case "7":
376
+ case "8":
330
377
  if (view === "prs") {
331
378
  setQuickFilterType("repo");
332
379
  if (!quickFilterValues.repo && repos.length > 0) {
@@ -334,10 +381,9 @@ export function useKeyboardNav({ onOpenInBrowser, onQuit }) {
334
381
  }
335
382
  }
336
383
  break;
337
- case "8":
384
+ case "9":
338
385
  if (view === "prs") {
339
386
  setQuickFilterType("status");
340
- // status already has default "approved"
341
387
  }
342
388
  break;
343
389
  // Cycle quick filter values with left/right
@@ -1 +1 @@
1
- {"version":3,"file":"useKeyboardNav.js","sourceRoot":"","sources":["../../../../src/tui/hooks/useKeyboardNav.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useKeyboardNav.js","sourceRoot":"","sources":["../../../../src/tui/hooks/useKeyboardNav.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DialogCommand.d.ts","sourceRoot":"","sources":["../../../../src/tui/ui/DialogCommand.tsx"],"names":[],"mappings":"AAmBA,wBAAgB,aAAa,8BA0M5B"}
1
+ {"version":3,"file":"DialogCommand.d.ts","sourceRoot":"","sources":["../../../../src/tui/ui/DialogCommand.tsx"],"names":[],"mappings":"AAwBA,wBAAgB,aAAa,8BAiO5B"}
@@ -3,12 +3,10 @@ import { useAtomSet } from "@effect-atom/atom-react";
3
3
  import { useKeyboard } from "@opentui/react";
4
4
  import { useEffect, useMemo, useRef, useState } from "react";
5
5
  import { clearNotificationsAtom, refreshAtom, setAllAccountsAtom } from "../atoms/app.js";
6
- import { filterTextAtom, isFilteringAtom, isSettingsFilteringAtom, quickFilterTypeAtom, viewAtom } from "../atoms/ui.js";
6
+ import { filterTextAtom, isFilteringAtom, isSettingsFilteringAtom, quickFilterTypeAtom, settingsTabAtom, viewAtom } from "../atoms/ui.js";
7
7
  import { useDialog } from "../context/dialog.js";
8
8
  import { useTheme } from "../context/theme.js";
9
9
  import { DialogCreatePR } from "./DialogCreatePR.js";
10
- import { DialogHelp } from "./DialogHelp.js";
11
- import { DialogTheme } from "./DialogTheme.js";
12
10
  export function DialogCommand() {
13
11
  const { theme } = useTheme();
14
12
  const dialog = useDialog();
@@ -16,7 +14,7 @@ export function DialogCommand() {
16
14
  const [selectedIndex, setSelectedIndex] = useState(0);
17
15
  const [scrollOffset, setScrollOffset] = useState(0);
18
16
  const scrollRef = useRef(null);
19
- const visibleHeight = 11; // 15 max height - 3 for border/header - 1 for padding
17
+ const visibleHeight = 11;
20
18
  const refresh = useAtomSet(refreshAtom);
21
19
  const setView = useAtomSet(viewAtom);
22
20
  const setIsFiltering = useAtomSet(isFilteringAtom);
@@ -25,11 +23,46 @@ export function DialogCommand() {
25
23
  const clearNotifications = useAtomSet(clearNotificationsAtom);
26
24
  const setQuickFilterType = useAtomSet(quickFilterTypeAtom);
27
25
  const setAllAccounts = useAtomSet(setAllAccountsAtom);
26
+ const setSettingsTab = useAtomSet(settingsTabAtom);
28
27
  const commands = useMemo(() => [
28
+ // Settings
29
+ { id: "settings", label: "Open Settings", action: () => setView("settings") },
30
+ {
31
+ id: "settings-accounts",
32
+ label: "Settings: Accounts",
33
+ action: () => {
34
+ setView("settings");
35
+ setSettingsTab("accounts");
36
+ }
37
+ },
38
+ {
39
+ id: "settings-theme",
40
+ label: "Settings: Theme",
41
+ action: () => {
42
+ setView("settings");
43
+ setSettingsTab("theme");
44
+ }
45
+ },
46
+ {
47
+ id: "settings-config",
48
+ label: "Settings: Config",
49
+ action: () => {
50
+ setView("settings");
51
+ setSettingsTab("config");
52
+ }
53
+ },
54
+ {
55
+ id: "settings-about",
56
+ label: "Settings: About / Help",
57
+ action: () => {
58
+ setView("settings");
59
+ setSettingsTab("about");
60
+ }
61
+ },
62
+ // Actions
29
63
  {
30
64
  id: "create-pr",
31
65
  label: "Create Pull Request",
32
- shortcut: "c",
33
66
  action: () => dialog.show(() => _jsx(DialogCreatePR, {}))
34
67
  },
35
68
  { id: "refresh", label: "Refresh PRs", shortcut: "r", action: () => refresh() },
@@ -50,9 +83,10 @@ export function DialogCommand() {
50
83
  setQuickFilterType("all");
51
84
  }
52
85
  },
86
+ // Views
53
87
  { id: "view-prs", label: "View: Pull Requests", shortcut: "Esc", action: () => setView("prs") },
54
- { id: "view-settings", label: "View: Settings", shortcut: "s", action: () => setView("settings") },
55
88
  { id: "view-notifications", label: "View: Notifications", shortcut: "n", action: () => setView("notifications") },
89
+ // Filters
56
90
  { id: "filter-all", label: "Filter: All PRs", shortcut: "1", action: () => setQuickFilterType("all") },
57
91
  { id: "filter-mine", label: "Filter: My PRs", shortcut: "2", action: () => setQuickFilterType("mine") },
58
92
  { id: "filter-account", label: "Filter: By Account", shortcut: "3", action: () => setQuickFilterType("account") },
@@ -61,30 +95,19 @@ export function DialogCommand() {
61
95
  { id: "filter-date", label: "Filter: By Age", shortcut: "6", action: () => setQuickFilterType("date") },
62
96
  { id: "filter-repo", label: "Filter: By Repo", shortcut: "7", action: () => setQuickFilterType("repo") },
63
97
  { id: "filter-status", label: "Filter: By Status", shortcut: "8", action: () => setQuickFilterType("status") },
98
+ // Settings actions
64
99
  {
65
100
  id: "settings-filter",
66
101
  label: "Settings: Filter Accounts",
67
- shortcut: "/",
68
102
  action: () => {
69
103
  setView("settings");
104
+ setSettingsTab("accounts");
70
105
  setIsSettingsFiltering(true);
71
106
  }
72
107
  },
73
- {
74
- id: "settings-all-on",
75
- label: "Settings: Enable All",
76
- shortcut: "a",
77
- action: () => setAllAccounts({ enabled: true })
78
- },
79
- {
80
- id: "settings-all-off",
81
- label: "Settings: Disable All",
82
- shortcut: "d",
83
- action: () => setAllAccounts({ enabled: false })
84
- },
85
- { id: "clear-notifications", label: "Clear Notifications", shortcut: "c", action: () => clearNotifications() },
86
- { id: "theme", label: "Change Theme", shortcut: "t", action: () => dialog.show(() => _jsx(DialogTheme, {})) },
87
- { id: "help", label: "Show Help", shortcut: "h", action: () => dialog.show(() => _jsx(DialogHelp, {})) }
108
+ { id: "settings-all-on", label: "Settings: Enable All", action: () => setAllAccounts({ enabled: true }) },
109
+ { id: "settings-all-off", label: "Settings: Disable All", action: () => setAllAccounts({ enabled: false }) },
110
+ { id: "clear-notifications", label: "Clear Notifications", action: () => clearNotifications() }
88
111
  ], [
89
112
  refresh,
90
113
  setView,
@@ -94,6 +117,7 @@ export function DialogCommand() {
94
117
  clearNotifications,
95
118
  setQuickFilterType,
96
119
  setAllAccounts,
120
+ setSettingsTab,
97
121
  dialog
98
122
  ]);
99
123
  const filteredCommands = useMemo(() => {
@@ -102,15 +126,13 @@ export function DialogCommand() {
102
126
  const s = search.toLowerCase();
103
127
  return commands.filter((cmd) => cmd.label.toLowerCase().includes(s) || cmd.id.includes(s));
104
128
  }, [commands, search]);
105
- // Scroll to keep selected item visible with 1-item margin
106
129
  useEffect(() => {
107
130
  if (!scrollRef.current)
108
131
  return;
109
132
  let newOffset = scrollOffset;
110
- // If selection is above visible area (with 1-item margin)
111
133
  if (selectedIndex < scrollOffset + 1) {
112
134
  newOffset = Math.max(0, selectedIndex - 1);
113
- } // If selection is below visible area (with 1-item margin)
135
+ }
114
136
  else if (selectedIndex > scrollOffset + visibleHeight - 2) {
115
137
  newOffset = selectedIndex - visibleHeight + 2;
116
138
  }