diff --git a/frontend/src/app/useWorkspaceSurface.tsx b/frontend/src/app/useWorkspaceSurface.tsx index 96e668c..c87e0a6 100644 --- a/frontend/src/app/useWorkspaceSurface.tsx +++ b/frontend/src/app/useWorkspaceSurface.tsx @@ -1,4 +1,4 @@ -import { useCallback, useEffect, useMemo } from 'react'; +import { useCallback, useEffect, useMemo, useRef } from 'react'; import type { ComponentProps, ReactNode } from 'react'; import { SidebarExpandIcon } from '../components/icons'; import DocumentsPanel from '../documents/panel/DocumentsPanel'; @@ -70,11 +70,23 @@ export const useWorkspaceSurface = ({ return () => registerDetailCloseHandler(null); }, [registerDetailCloseHandler, detailPanelProps?.onClose]); + const setDetailActiveRef = useRef(setDetailActive); + useEffect(() => { + setDetailActiveRef.current = setDetailActive; + }, [setDetailActive]); + useEffect(() => { setDetailActive(Boolean(detailPanelOpen)); - return () => setDetailActive(false); }, [detailPanelOpen, setDetailActive]); + useEffect(() => { + return () => { + if (setDetailActiveRef.current) { + setDetailActiveRef.current(false); + } + }; + }, []); + const renderSidebarToggle = useCallback<() => ReactNode>(() => { if (!sidebarHidden) { return null;