Enhance keydown handling in App.tsx
This commit is contained in:
27
src/App.tsx
27
src/App.tsx
@@ -772,16 +772,31 @@ export default function App() {
|
|||||||
const handleKeyDown = (event: KeyboardEvent) => {
|
const handleKeyDown = (event: KeyboardEvent) => {
|
||||||
const isSave =
|
const isSave =
|
||||||
(event.metaKey || event.ctrlKey) && event.key.toLowerCase() === "s";
|
(event.metaKey || event.ctrlKey) && event.key.toLowerCase() === "s";
|
||||||
if (!isSave) return;
|
if (isSave) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
handleSaveVersion().catch((error) => {
|
handleSaveVersion().catch((error) => {
|
||||||
console.error("Failed to save version", error);
|
console.error("Failed to save version", error);
|
||||||
});
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
event.key === "Tab" &&
|
||||||
|
!event.metaKey &&
|
||||||
|
!event.ctrlKey &&
|
||||||
|
!event.altKey &&
|
||||||
|
selectedTextId &&
|
||||||
|
!settingsOpen &&
|
||||||
|
!confirmState
|
||||||
|
) {
|
||||||
|
event.preventDefault();
|
||||||
|
setMarkdownPreview((value) => !value);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
window.addEventListener("keydown", handleKeyDown);
|
window.addEventListener("keydown", handleKeyDown);
|
||||||
return () => window.removeEventListener("keydown", handleKeyDown);
|
return () => window.removeEventListener("keydown", handleKeyDown);
|
||||||
}, [handleSaveVersion]);
|
}, [confirmState, handleSaveVersion, selectedTextId, settingsOpen]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={`app app--theme-${theme}${sidebarCollapsed ? " app--sidebar-collapsed" : ""}`}>
|
<div className={`app app--theme-${theme}${sidebarCollapsed ? " app--sidebar-collapsed" : ""}`}>
|
||||||
|
|||||||
Reference in New Issue
Block a user