From 1ebc2f81d0953db3decdc3620b7d56fb59f8f92f Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Fri, 3 Apr 2026 01:13:22 +0200 Subject: [PATCH] Add keyboard shortcuts for save, undo, and redo in App.tsx --- src/app/App.tsx | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/src/app/App.tsx b/src/app/App.tsx index 1e0e03e6..824aa8d0 100644 --- a/src/app/App.tsx +++ b/src/app/App.tsx @@ -1261,6 +1261,44 @@ export function App({ store, initialStatusMessage }: AppProps) { return; } + const hasPrimaryModifier = (event.metaKey || event.ctrlKey) && !event.altKey; + + if (hasPrimaryModifier && event.code === "KeyS" && !event.shiftKey) { + event.preventDefault(); + handleSaveDraft(); + return; + } + + if (hasPrimaryModifier && event.code === "KeyZ") { + event.preventDefault(); + + if (event.shiftKey) { + if (store.redo()) { + setStatusMessage("Redid the last action."); + } else { + setStatusMessage("Nothing to redo."); + } + } else if (store.undo()) { + setStatusMessage("Undid the last action."); + } else { + setStatusMessage("Nothing to undo."); + } + + return; + } + + if (hasPrimaryModifier && event.code === "KeyY") { + event.preventDefault(); + + if (store.redo()) { + setStatusMessage("Redid the last action."); + } else { + setStatusMessage("Nothing to redo."); + } + + return; + } + if (event.key === "Escape" && addMenuPosition !== null) { event.preventDefault(); setAddMenuPosition(null);