refactor(main): extract keyboard shortcuts to utils

This commit is contained in:
Slinetrac 2025-12-03 13:15:21 +08:00
parent 1727d0b6d4
commit 56ad05cbf9
No known key found for this signature in database
2 changed files with 21 additions and 13 deletions

View File

@ -25,6 +25,7 @@ import {
ThemeModeProvider,
UpdateStateProvider,
} from "./services/states";
import { disableWebViewShortcuts } from "./utils/disable-webview-shortcuts";
if (!window.ResizeObserver) {
window.ResizeObserver = ResizeObserver;
@ -39,19 +40,7 @@ if (!container) {
);
}
document.addEventListener("keydown", (event) => {
// Disable WebView keyboard shortcuts
const disabledShortcuts =
["F5", "F7"].includes(event.key) ||
(event.altKey && ["ArrowLeft", "ArrowRight"].includes(event.key)) ||
((event.ctrlKey || event.metaKey) &&
["F", "G", "H", "J", "P", "Q", "R", "U"].includes(
event.key.toUpperCase(),
));
if (disabledShortcuts) {
event.preventDefault();
}
});
disableWebViewShortcuts();
const initializeApp = (initialThemeMode: "light" | "dark") => {
const contexts = [

View File

@ -0,0 +1,19 @@
export const disableWebViewShortcuts = () => {
const handleKeydown = (event: KeyboardEvent) => {
const disabledShortcuts =
["F5", "F7"].includes(event.key) ||
(event.altKey && ["ArrowLeft", "ArrowRight"].includes(event.key)) ||
((event.ctrlKey || event.metaKey) &&
["F", "G", "H", "J", "P", "Q", "R", "U"].includes(
event.key.toUpperCase(),
));
if (disabledShortcuts) {
event.preventDefault();
}
};
document.addEventListener("keydown", handleKeydown);
return () => document.removeEventListener("keydown", handleKeydown);
};