@@ -80,7 +80,8 @@ export default function App() {
8080 // Undo/redo stacks
8181 const undoStackRef = useRef < Design [ ] > ( [ ] ) ;
8282 const redoStackRef = useRef < Design [ ] > ( [ ] ) ;
83- const [ undoRedoVersion , setUndoRedoVersion ] = useState ( 0 ) ;
83+ const [ canUndo , setCanUndo ] = useState ( false ) ;
84+ const [ canRedo , setCanRedo ] = useState ( false ) ;
8485
8586 // Sync localDesign when currentDesign changes from API
8687 const activeDesign = localDesign ?. id === currentDesign ?. id ? localDesign : currentDesign ;
@@ -107,7 +108,8 @@ export default function App() {
107108 undoStackRef . current . push ( design ) ;
108109 if ( undoStackRef . current . length > 50 ) undoStackRef . current . shift ( ) ;
109110 redoStackRef . current = [ ] ;
110- setUndoRedoVersion ( v => v + 1 ) ;
111+ setCanUndo ( true ) ;
112+ setCanRedo ( false ) ;
111113 } , [ ] ) ;
112114
113115 const handleDesignChange = useCallback (
@@ -127,7 +129,8 @@ export default function App() {
127129 redoStackRef . current . push ( activeDesign ) ;
128130 setLocalDesign ( prev ) ;
129131 setCurrentDesign ( prev ) ;
130- setUndoRedoVersion ( v => v + 1 ) ;
132+ setCanUndo ( undoStackRef . current . length > 0 ) ;
133+ setCanRedo ( true ) ;
131134 }
132135 } , [ activeDesign , setCurrentDesign ] ) ;
133136
@@ -137,7 +140,8 @@ export default function App() {
137140 undoStackRef . current . push ( activeDesign ) ;
138141 setLocalDesign ( next ) ;
139142 setCurrentDesign ( next ) ;
140- setUndoRedoVersion ( v => v + 1 ) ;
143+ setCanUndo ( true ) ;
144+ setCanRedo ( redoStackRef . current . length > 0 ) ;
141145 }
142146 } , [ activeDesign , setCurrentDesign ] ) ;
143147
@@ -162,7 +166,8 @@ export default function App() {
162166 setLocalDesign ( null ) ;
163167 undoStackRef . current = [ ] ;
164168 redoStackRef . current = [ ] ;
165- setUndoRedoVersion ( v => v + 1 ) ;
169+ setCanUndo ( false ) ;
170+ setCanRedo ( false ) ;
166171 loadDesign ( id ) ;
167172 } ,
168173 [ loadDesign ]
@@ -175,11 +180,6 @@ export default function App() {
175180 [ createDesign ]
176181 ) ;
177182
178- const canUndo = undoStackRef . current . length > 0 ;
179- const canRedo = redoStackRef . current . length > 0 ;
180- // Reference undoRedoVersion to trigger re-render
181- void undoRedoVersion ;
182-
183183 return (
184184 < ThemeProvider theme = { theme } >
185185 < CssBaseline />
0 commit comments