From 350394b1976f0a6f58ea46fc39d00b590c0c2d97 Mon Sep 17 00:00:00 2001 From: Victor Giers Date: Sat, 11 Apr 2026 13:55:45 +0200 Subject: [PATCH] Refactor undo/redo logic in App.tsx --- src/app/App.tsx | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/src/app/App.tsx b/src/app/App.tsx index 58fb2101..4311a7ae 100644 --- a/src/app/App.tsx +++ b/src/app/App.tsx @@ -2428,15 +2428,9 @@ export function App({ store, initialStatusMessage }: AppProps) { 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."); + handleRedo(); } else { - setStatusMessage("Nothing to undo."); + handleUndo(); } return; @@ -2444,12 +2438,7 @@ export function App({ store, initialStatusMessage }: AppProps) { if (hasPrimaryModifier && event.code === "KeyY") { event.preventDefault(); - - if (store.redo()) { - setStatusMessage("Redid the last action."); - } else { - setStatusMessage("Nothing to redo."); - } + handleRedo(); return; } @@ -2929,6 +2918,22 @@ export function App({ store, initialStatusMessage }: AppProps) { ); }; + const handleUndo = () => { + if (store.undo()) { + setStatusMessage("Undid the last action."); + } else { + setStatusMessage("Nothing to undo."); + } + }; + + const handleRedo = () => { + if (store.redo()) { + setStatusMessage("Redid the last action."); + } else { + setStatusMessage("Nothing to redo."); + } + }; + const beginTransformOperation = ( operation: TransformOperation, source: TransformSessionSource