mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-04-13 13:30:31 +08:00
refactor(main): extract keyboard shortcuts to utils
This commit is contained in:
parent
1727d0b6d4
commit
56ad05cbf9
15
src/main.tsx
15
src/main.tsx
@ -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 = [
|
||||
|
||||
19
src/utils/disable-webview-shortcuts.ts
Normal file
19
src/utils/disable-webview-shortcuts.ts
Normal 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);
|
||||
};
|
||||
Loading…
x
Reference in New Issue
Block a user