This commit is contained in:
2025-11-01 13:59:46 +01:00
parent 9aed7ec524
commit 6f6ee59461
+20 -2
View File
@@ -496,12 +496,27 @@ const AppLayout = () => {
const [detailPanelOpen, setDetailPanelOpen] = useState(() => selectedDocumentIds.length > 0); const [detailPanelOpen, setDetailPanelOpen] = useState(() => selectedDocumentIds.length > 0);
const [detailPanelDocIds, setDetailPanelDocIds] = useState([]); const [detailPanelDocIds, setDetailPanelDocIds] = useState([]);
const [detailPanelDocs, setDetailPanelDocs] = useState([]); const [detailPanelDocs, setDetailPanelDocs] = useState([]);
const detailPanelAutoOpenRef = useRef(true);
const detailPanelSelectionTokenRef = useRef(selectedDocumentIds.join('|'));
useEffect(() => { useEffect(() => {
if (selectedDocumentIds.length > 0 && !detailPanelOpen) { const token = selectedDocumentIds.join('|');
if (token !== detailPanelSelectionTokenRef.current) {
detailPanelSelectionTokenRef.current = token;
detailPanelAutoOpenRef.current = true;
}
if (selectedDocumentIds.length === 0) {
if (detailPanelOpen) {
setDetailPanelOpen(false);
}
return;
}
if (!detailPanelOpen && detailPanelAutoOpenRef.current && !previewDocumentId) {
setDetailPanelOpen(true); setDetailPanelOpen(true);
} }
}, [selectedDocumentIds, detailPanelOpen]); }, [selectedDocumentIds, detailPanelOpen, previewDocumentId]);
const resetWorkspaceState = useCallback(() => { const resetWorkspaceState = useCallback(() => {
const rootNode = createRootNode(); const rootNode = createRootNode();
@@ -3382,6 +3397,8 @@ const AppLayout = () => {
const openDocumentPreview = useCallback( const openDocumentPreview = useCallback(
(documentId, { replace = false } = {}) => { (documentId, { replace = false } = {}) => {
if (!documentId) return; if (!documentId) return;
detailPanelAutoOpenRef.current = false;
setDetailPanelOpen(false);
previewReturnPathRef.current = `${location.pathname}${location.search}`; previewReturnPathRef.current = `${location.pathname}${location.search}`;
navigate(`/documents/${documentId}`, { replace }); navigate(`/documents/${documentId}`, { replace });
}, },
@@ -5134,6 +5151,7 @@ const AppLayout = () => {
); );
const handleDetailPanelClose = useCallback(() => { const handleDetailPanelClose = useCallback(() => {
detailPanelAutoOpenRef.current = false;
setDetailPanelOpen(false); setDetailPanelOpen(false);
clearDocumentSelection(); clearDocumentSelection();
setDetailPanelDocIds([]); setDetailPanelDocIds([]);