diff --git a/src/lib/components/common/PDFViewer.svelte b/src/lib/components/common/PDFViewer.svelte index 33955255aa..722cb2ec8d 100644 --- a/src/lib/components/common/PDFViewer.svelte +++ b/src/lib/components/common/PDFViewer.svelte @@ -319,8 +319,7 @@ export const resetView = () => { if (pzInstance) { - pzInstance.moveTo(0, 0); - pzInstance.zoomAbs(0, 0, 1); + initPanzoom(); zoomLevel = 1; rerenderPages(1); } @@ -529,11 +528,19 @@ wrappers.push(wrapper); } + const { x, y, scale } = pzInstance?.getTransform() ?? { x: 0, y: 0, scale: 1 }; + const keepView = + singlePage && renderedPage && renderedPage !== selectedPage && Math.abs(scale - 1) >= 0.01; sceneElement.replaceChildren(...wrappers); void renderCommentMarkers(); lastRenderedZoom = 1; + zoomLevel = 1; renderedPage = singlePage ? selectedPage : 0; initPanzoom(); + if (keepView) { + pzInstance?.zoomAbs(0, 0, scale); + pzInstance?.moveTo(x, y); + } await scrollToTargetPage(); syncVisiblePage(); }; @@ -714,9 +721,7 @@ {/if}
-
+
{#if !error && pdfDoc} diff --git a/src/lib/components/common/PdfPagesPreview.svelte b/src/lib/components/common/PdfPagesPreview.svelte index 3c8cf21503..3128cef0cd 100644 --- a/src/lib/components/common/PdfPagesPreview.svelte +++ b/src/lib/components/common/PdfPagesPreview.svelte @@ -40,6 +40,7 @@ pdfData instanceof Uint8Array ? pdfData.slice() : pdfData.slice(0); const updateLayout = () => { + if (rootEl && !rootEl.clientWidth) return; hideThumbs = (rootEl?.clientWidth ?? window.innerWidth) < 720; };