fix
This commit is contained in:
@@ -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([]);
|
||||||
|
|||||||
Reference in New Issue
Block a user