diff --git a/apps/ai-game-creator-shell/src/view/ui-editor/index.tsx b/apps/ai-game-creator-shell/src/view/ui-editor/index.tsx index da336c2af..a4c3f8220 100644 --- a/apps/ai-game-creator-shell/src/view/ui-editor/index.tsx +++ b/apps/ai-game-creator-shell/src/view/ui-editor/index.tsx @@ -77,6 +77,8 @@ export default function UiEditorPage({ Boolean(session.save.loadError) || session.save.persistedRevision === null || session.save.isLocked; + const historyUndo = session.history.undo; + const historyRedo = session.history.redo; useEffect(() => { if (session.save.isDirty) setGenerateSuccess(null); @@ -92,6 +94,7 @@ export default function UiEditorPage({ }; const onKeyDown = (event: KeyboardEvent) => { if ( + event.defaultPrevented || isEditableTarget(event.target) || (!event.ctrlKey && !event.metaKey) ) { @@ -101,15 +104,15 @@ export default function UiEditorPage({ const isRedo = (event.key.toLowerCase() === 'z' && event.shiftKey) || (event.ctrlKey && event.key.toLowerCase() === 'y'); - if (isUndo && session.history.undo()) { + if (isUndo && historyUndo()) { event.preventDefault(); - } else if (isRedo && session.history.redo()) { + } else if (isRedo && historyRedo()) { event.preventDefault(); } }; window.addEventListener('keydown', onKeyDown); return () => window.removeEventListener('keydown', onKeyDown); - }, [session.history]); + }, [historyRedo, historyUndo]); async function save(afterReturn = false) { if (await session.save.save()) {