From 21eca03abb739debc283f88caa3a77a41727dacd Mon Sep 17 00:00:00 2001 From: Mathias Jakobsen Date: Fri, 2 May 2025 09:35:13 +0100 Subject: [PATCH] Merge pull request #25217 from overleaf/mj-beamer-arrow-links [web] Fix arrow movement in beamer presentation mode after link click GitOrigin-RevId: 85701d9c918889981faa34f1adb57fb901d7b9df --- .../js/features/pdf-preview/components/pdf-js-viewer.tsx | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/services/web/frontend/js/features/pdf-preview/components/pdf-js-viewer.tsx b/services/web/frontend/js/features/pdf-preview/components/pdf-js-viewer.tsx index 5080c5890a..9d0cfca638 100644 --- a/services/web/frontend/js/features/pdf-preview/components/pdf-js-viewer.tsx +++ b/services/web/frontend/js/features/pdf-preview/components/pdf-js-viewer.tsx @@ -144,6 +144,10 @@ function PdfJsViewer({ url, pdfFile }: PdfJsViewerProps) { setRawScale(scale.scale) } + const handlePageChanging = (event: { pageNumber: number }) => { + setPage(event.pageNumber) + } + // `pagesinit` fires when the data for rendering the first page is ready. pdfJsWrapper.eventBus.on('pagesinit', handlePagesinit) // `pagerendered` fires when a page was actually rendered. @@ -151,12 +155,15 @@ function PdfJsViewer({ url, pdfFile }: PdfJsViewerProps) { // Once a page has been rendered we can set the initial current page number. pdfJsWrapper.eventBus.on('pagerendered', handleRenderedInitialPageNumber) pdfJsWrapper.eventBus.on('scalechanging', handleScaleChanged) + // `pagechanging` fires when the page number changes. + pdfJsWrapper.eventBus.on('pagechanging', handlePageChanging) return () => { pdfJsWrapper.eventBus.off('pagesinit', handlePagesinit) pdfJsWrapper.eventBus.off('pagerendered', handleRendered) pdfJsWrapper.eventBus.off('pagerendered', handleRenderedInitialPageNumber) pdfJsWrapper.eventBus.off('scalechanging', handleScaleChanged) + pdfJsWrapper.eventBus.off('pagechanging', handlePageChanging) } }, [pdfJsWrapper, firstRenderDone, startFetch])