@pokit/tabs-core 0.0.21 → 0.0.23
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.
|
@@ -7,8 +7,9 @@
|
|
|
7
7
|
/**
|
|
8
8
|
* Callbacks for keyboard actions in the tabbed view.
|
|
9
9
|
*/
|
|
10
|
+
export type QuitReason = 'user' | 'interrupt';
|
|
10
11
|
export type KeyboardCallbacks = {
|
|
11
|
-
onQuit: () => void;
|
|
12
|
+
onQuit: (reason: QuitReason) => void;
|
|
12
13
|
onQuitRequest: () => void;
|
|
13
14
|
onRestart: (index: number) => void;
|
|
14
15
|
onKill: (index: number) => void;
|
|
@@ -58,6 +59,7 @@ export type KeyboardAction = {
|
|
|
58
59
|
data: string;
|
|
59
60
|
} | {
|
|
60
61
|
type: 'quit';
|
|
62
|
+
reason: QuitReason;
|
|
61
63
|
} | {
|
|
62
64
|
type: 'quit-request';
|
|
63
65
|
} | {
|
|
@@ -97,7 +99,7 @@ export declare function processKeyEvent(event: NormalizedKeyEvent, state: Keyboa
|
|
|
97
99
|
* may have stale closures. The refs always point to the current callback.
|
|
98
100
|
*/
|
|
99
101
|
export declare function useKeyboardCallbackRefs(callbacks: KeyboardCallbacks): {
|
|
100
|
-
onQuitRef: import("react").RefObject<() => void>;
|
|
102
|
+
onQuitRef: import("react").RefObject<(reason: QuitReason) => void>;
|
|
101
103
|
onQuitRequestRef: import("react").RefObject<() => void>;
|
|
102
104
|
onRestartRef: import("react").RefObject<(index: number) => void>;
|
|
103
105
|
onKillRef: import("react").RefObject<(index: number) => void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-keyboard-handler.d.ts","sourceRoot":"","sources":["../../src/hooks/use-keyboard-handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"use-keyboard-handler.d.ts","sourceRoot":"","sources":["../../src/hooks/use-keyboard-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,7 +42,7 @@ export function processKeyEvent(event, state, viewHeight) {
|
|
|
42
42
|
// Quit confirmation handling
|
|
43
43
|
if (quitConfirmPending) {
|
|
44
44
|
if (char === 'q' || name === 'q') {
|
|
45
|
-
return { type: 'quit' };
|
|
45
|
+
return { type: 'quit', reason: 'user' };
|
|
46
46
|
}
|
|
47
47
|
return { type: 'cancel-quit' };
|
|
48
48
|
}
|
|
@@ -52,7 +52,7 @@ export function processKeyEvent(event, state, viewHeight) {
|
|
|
52
52
|
}
|
|
53
53
|
// Ctrl+C for instant quit
|
|
54
54
|
if ((char === 'c' || name === 'c') && ctrl) {
|
|
55
|
-
return { type: 'quit' };
|
|
55
|
+
return { type: 'quit', reason: 'interrupt' };
|
|
56
56
|
}
|
|
57
57
|
// Enter focus/input mode
|
|
58
58
|
if (char === 'i' || name === 'i') {
|
|
@@ -190,7 +190,7 @@ export function executeKeyboardAction(action, refs, scrollBy, switchTab, nextTab
|
|
|
190
190
|
refs.onSendInputRef.current(action.data);
|
|
191
191
|
break;
|
|
192
192
|
case 'quit':
|
|
193
|
-
refs.onQuitRef.current();
|
|
193
|
+
refs.onQuitRef.current(action.reason);
|
|
194
194
|
break;
|
|
195
195
|
case 'quit-request':
|
|
196
196
|
case 'cancel-quit':
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pokit/tabs-core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.23",
|
|
4
4
|
"description": "Core tab management utilities for pok CLI applications",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cli",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
},
|
|
46
46
|
"peerDependencies": {
|
|
47
47
|
"react": "^18.0.0 || ^19.0.0",
|
|
48
|
-
"@pokit/core": "0.0.
|
|
48
|
+
"@pokit/core": "0.0.23"
|
|
49
49
|
},
|
|
50
50
|
"peerDependenciesMeta": {
|
|
51
51
|
"react": {
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"@types/bun": "latest",
|
|
57
57
|
"@types/react": "^19.2.0",
|
|
58
58
|
"react": "^19.2.0",
|
|
59
|
-
"@pokit/core": "0.0.
|
|
59
|
+
"@pokit/core": "0.0.23"
|
|
60
60
|
},
|
|
61
61
|
"engines": {
|
|
62
62
|
"bun": ">=1.0.0"
|
|
@@ -11,8 +11,10 @@ import { KEY_SEQUENCES, ctrlKeyToSequence } from '../constants/keyboard.js';
|
|
|
11
11
|
/**
|
|
12
12
|
* Callbacks for keyboard actions in the tabbed view.
|
|
13
13
|
*/
|
|
14
|
+
export type QuitReason = 'user' | 'interrupt';
|
|
15
|
+
|
|
14
16
|
export type KeyboardCallbacks = {
|
|
15
|
-
onQuit: () => void;
|
|
17
|
+
onQuit: (reason: QuitReason) => void;
|
|
16
18
|
onQuitRequest: () => void;
|
|
17
19
|
onRestart: (index: number) => void;
|
|
18
20
|
onKill: (index: number) => void;
|
|
@@ -59,7 +61,7 @@ export type KeyboardAction =
|
|
|
59
61
|
| { type: 'close-help' }
|
|
60
62
|
| { type: 'exit-focus-mode' }
|
|
61
63
|
| { type: 'send-input'; data: string }
|
|
62
|
-
| { type: 'quit' }
|
|
64
|
+
| { type: 'quit'; reason: QuitReason }
|
|
63
65
|
| { type: 'quit-request' }
|
|
64
66
|
| { type: 'cancel-quit' }
|
|
65
67
|
| { type: 'enter-focus-mode' }
|
|
@@ -118,7 +120,7 @@ export function processKeyEvent(
|
|
|
118
120
|
// Quit confirmation handling
|
|
119
121
|
if (quitConfirmPending) {
|
|
120
122
|
if (char === 'q' || name === 'q') {
|
|
121
|
-
return { type: 'quit' };
|
|
123
|
+
return { type: 'quit', reason: 'user' };
|
|
122
124
|
}
|
|
123
125
|
return { type: 'cancel-quit' };
|
|
124
126
|
}
|
|
@@ -130,7 +132,7 @@ export function processKeyEvent(
|
|
|
130
132
|
|
|
131
133
|
// Ctrl+C for instant quit
|
|
132
134
|
if ((char === 'c' || name === 'c') && ctrl) {
|
|
133
|
-
return { type: 'quit' };
|
|
135
|
+
return { type: 'quit', reason: 'interrupt' };
|
|
134
136
|
}
|
|
135
137
|
|
|
136
138
|
// Enter focus/input mode
|
|
@@ -284,7 +286,7 @@ export function executeKeyboardAction(
|
|
|
284
286
|
refs.onSendInputRef.current(action.data);
|
|
285
287
|
break;
|
|
286
288
|
case 'quit':
|
|
287
|
-
refs.onQuitRef.current();
|
|
289
|
+
refs.onQuitRef.current(action.reason);
|
|
288
290
|
break;
|
|
289
291
|
case 'quit-request':
|
|
290
292
|
case 'cancel-quit':
|