From 81baea8ebb712a99fedfd022f32bfbf7026ea66f Mon Sep 17 00:00:00 2001 From: Jinwoo-H Date: Sat, 30 May 2026 08:42:28 -0700 Subject: [PATCH] Fix floating workspace open warnings Co-authored-by: Orca --- src/renderer/src/App.tsx | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/renderer/src/App.tsx b/src/renderer/src/App.tsx index 8189259eef9..58628fe3148 100644 --- a/src/renderer/src/App.tsx +++ b/src/renderer/src/App.tsx @@ -413,18 +413,19 @@ function App(): React.JSX.Element { const setFloatingTerminalOpenWithFocus = useCallback( (nextOpen: SetStateAction): void => { - setFloatingTerminalOpen((currentOpen) => { - const resolvedOpen = typeof nextOpen === 'function' ? nextOpen(currentOpen) : nextOpen - if (resolvedOpen && !currentOpen) { - useAppStore.getState().recordFeatureInteraction('floating-workspace') - rememberFloatingTerminalReturnFocus() - } else if (!resolvedOpen && currentOpen) { - restoreFloatingTerminalReturnFocus() - } - return resolvedOpen - }) + const resolvedOpen = + typeof nextOpen === 'function' ? nextOpen(floatingTerminalOpen) : nextOpen + // Why: recordFeatureInteraction updates Zustand subscribers; doing it + // inside React's state updater logs a render-phase update warning. + if (resolvedOpen && !floatingTerminalOpen) { + useAppStore.getState().recordFeatureInteraction('floating-workspace') + rememberFloatingTerminalReturnFocus() + } else if (!resolvedOpen && floatingTerminalOpen) { + restoreFloatingTerminalReturnFocus() + } + setFloatingTerminalOpen(resolvedOpen) }, - [rememberFloatingTerminalReturnFocus, restoreFloatingTerminalReturnFocus] + [floatingTerminalOpen, rememberFloatingTerminalReturnFocus, restoreFloatingTerminalReturnFocus] ) useEffect(() => {