mirror of
https://github.com/wavetermdev/waveterm.git
synced 2025-01-31 23:11:28 +01:00
keydownWrapper
This commit is contained in:
parent
50a4074c39
commit
b2cdd441d1
@ -210,15 +210,8 @@ const AppInner = () => {
|
||||
</div>
|
||||
);
|
||||
}
|
||||
function handleKeyDown(ev: KeyboardEvent) {
|
||||
let waveEvent = keyutil.adaptFromReactOrNativeKeyEvent(ev);
|
||||
const rtn = handleKeyDownInternal(waveEvent);
|
||||
if (rtn) {
|
||||
ev.preventDefault();
|
||||
ev.stopPropagation();
|
||||
}
|
||||
}
|
||||
function handleKeyDownInternal(waveEvent: WaveKeyboardEvent): boolean {
|
||||
|
||||
function handleKeyDown(waveEvent: WaveKeyboardEvent): boolean {
|
||||
// global key handler for now (refactor later)
|
||||
if (keyutil.checkKeyPressed(waveEvent, "Cmd:]")) {
|
||||
switchTab(1);
|
||||
@ -247,7 +240,7 @@ const AppInner = () => {
|
||||
return false;
|
||||
}
|
||||
React.useEffect(() => {
|
||||
const staticKeyDownHandler = handleKeyDown;
|
||||
const staticKeyDownHandler = keyutil.keydownWrapper(handleKeyDown);
|
||||
document.addEventListener("keydown", staticKeyDownHandler);
|
||||
return () => {
|
||||
document.removeEventListener("keydown", staticKeyDownHandler);
|
||||
|
@ -213,6 +213,7 @@ const TerminalView = ({ blockId }: { blockId: string }) => {
|
||||
termWrap.initTerminal();
|
||||
return () => {
|
||||
termWrap.dispose();
|
||||
rszObs.disconnect();
|
||||
};
|
||||
}, []);
|
||||
|
||||
|
@ -12,6 +12,19 @@ function setKeyUtilPlatform(platform: NodeJS.Platform) {
|
||||
PLATFORM = platform;
|
||||
}
|
||||
|
||||
function keydownWrapper(
|
||||
fn: (waveEvent: WaveKeyboardEvent) => boolean
|
||||
): (event: KeyboardEvent | React.KeyboardEvent) => void {
|
||||
return (event: KeyboardEvent | React.KeyboardEvent) => {
|
||||
const waveEvent = adaptFromReactOrNativeKeyEvent(event);
|
||||
const rtnVal = fn(waveEvent);
|
||||
if (rtnVal) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function parseKey(key: string): { key: string; type: string } {
|
||||
let regexMatch = key.match(KeyTypeCodeRegex);
|
||||
if (regexMatch != null && regexMatch.length > 1) {
|
||||
@ -142,6 +155,7 @@ export {
|
||||
adaptFromElectronKeyEvent,
|
||||
adaptFromReactOrNativeKeyEvent,
|
||||
checkKeyPressed,
|
||||
keydownWrapper,
|
||||
parseKeyDescription,
|
||||
setKeyUtilPlatform,
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user