diff --git a/frontend/src/detail/DetailPanel.jsx b/frontend/src/detail/DetailPanel.jsx index 1d21c97..dd8e0a1 100644 --- a/frontend/src/detail/DetailPanel.jsx +++ b/frontend/src/detail/DetailPanel.jsx @@ -782,6 +782,24 @@ const DetailPanel = ({ } }, [zoomedPreview, zoomDisplay]); + const { + documentId: singleNavigatorDocId, + asset: singleNavigatorAsset, + ordinal: singleNavigatorOrdinal, + canGoPrev: singleNavigatorCanGoPrev, + canGoNext: singleNavigatorCanGoNext, + cardinality: singleNavigatorCardinality, + } = singlePreviewNavigator; + + const { + documentId: stackNavigatorDocId, + asset: stackNavigatorAsset, + ordinal: stackNavigatorOrdinal, + canGoPrev: stackNavigatorCanGoPrev, + canGoNext: stackNavigatorCanGoNext, + cardinality: stackNavigatorCardinality, + } = stackPreviewNavigator; + useEffect(() => { if (typeof ensureAssetUrl !== 'function') { return; @@ -829,22 +847,40 @@ const DetailPanel = ({ requests.forEach((promise) => promise?.catch?.(() => {})); }; - warmNavigator(singlePreviewNavigator); - warmNavigator(stackPreviewNavigator); + const singleWarmState = { + documentId: singleNavigatorDocId, + asset: singleNavigatorAsset, + ordinal: singleNavigatorOrdinal, + canGoPrev: singleNavigatorCanGoPrev, + canGoNext: singleNavigatorCanGoNext, + cardinality: singleNavigatorCardinality, + }; + + const stackWarmState = { + documentId: stackNavigatorDocId, + asset: stackNavigatorAsset, + ordinal: stackNavigatorOrdinal, + canGoPrev: stackNavigatorCanGoPrev, + canGoNext: stackNavigatorCanGoNext, + cardinality: stackNavigatorCardinality, + }; + + warmNavigator(singleWarmState); + warmNavigator(stackWarmState); }, [ ensureAssetUrl, - singlePreviewNavigator, - singlePreviewNavigator.documentId, - singlePreviewNavigator.asset, - singlePreviewNavigator.ordinal, - singlePreviewNavigator.canGoPrev, - singlePreviewNavigator.canGoNext, - stackPreviewNavigator, - stackPreviewNavigator.documentId, - stackPreviewNavigator.asset, - stackPreviewNavigator.ordinal, - stackPreviewNavigator.canGoPrev, - stackPreviewNavigator.canGoNext, + singleNavigatorDocId, + singleNavigatorAsset, + singleNavigatorOrdinal, + singleNavigatorCanGoPrev, + singleNavigatorCanGoNext, + singleNavigatorCardinality, + stackNavigatorDocId, + stackNavigatorAsset, + stackNavigatorOrdinal, + stackNavigatorCanGoPrev, + stackNavigatorCanGoNext, + stackNavigatorCardinality, ]); const renderSingle = () => { diff --git a/frontend/src/index.jsx b/frontend/src/index.jsx index d922493..b5eff7b 100644 --- a/frontend/src/index.jsx +++ b/frontend/src/index.jsx @@ -4480,14 +4480,14 @@ const AppLayout = () => { } if (!docIds.length) { - try { - const single = event.dataTransfer.getData('application/x-papercrate-doc'); - if (single) { - docIds = [single]; + try { + const single = event.dataTransfer.getData('application/x-papercrate-doc'); + if (single) { + docIds = [single]; + } + } catch (error) { + console.warn('[documents] Failed to read single document drag payload', error); } - } catch (error) { - console.warn('[documents] Failed to read single document drag payload', error); - } } if (!docIds.length && draggedDocumentIds.length) {