import type { ResolvedKeybindingsConfig } from "@t3tools/contracts"; import { isTerminalCloseShortcut, type ShortcutEventLike } from "../keybindings"; export interface TerminalCloseShortcutEvent extends ShortcutEventLike { readonly repeat?: boolean; readonly preventDefault: () => void;} function terminalCloseShortcutOptions(platform?: string) { return { ...(platform === undefined ? {} : { platform }), context: { terminalFocus: true, terminalOpen: true }, };} export function preventTerminalCloseShortcut( event: TerminalCloseShortcutEvent, keybindings: ResolvedKeybindingsConfig, platform?: string,): boolean { if (!isTerminalCloseShortcut(event, keybindings, terminalCloseShortcutOptions(platform))) { return false; } event.preventDefault(); return true;} export function preventRepeatedTerminalCloseShortcut( event: TerminalCloseShortcutEvent, keybindings: ResolvedKeybindingsConfig, platform?: string,): boolean { if (!event.repeat) return false; return preventTerminalCloseShortcut(event, keybindings, platform);}
import type { ResolvedKeybindingsConfig } from "@t3tools/contracts";
import { isTerminalCloseShortcut, type ShortcutEventLike } from "../keybindings";
export interface TerminalCloseShortcutEvent extends ShortcutEventLike {
readonly repeat?: boolean;
readonly preventDefault: () => void;
}
function terminalCloseShortcutOptions(platform?: string) {
return {
...(platform === undefined ? {} : { platform }),
context: { terminalFocus: true, terminalOpen: true },
};
}
export function preventTerminalCloseShortcut(
event: TerminalCloseShortcutEvent,
keybindings: ResolvedKeybindingsConfig,
platform?: string,
): boolean {
if (!isTerminalCloseShortcut(event, keybindings, terminalCloseShortcutOptions(platform))) {
return false;
}
event.preventDefault();
return true;
}
export function preventRepeatedTerminalCloseShortcut(
event: TerminalCloseShortcutEvent,
keybindings: ResolvedKeybindingsConfig,
platform?: string,
): boolean {
if (!event.repeat) return false;
return preventTerminalCloseShortcut(event, keybindings, platform);
}