diff --git a/web/app.js b/web/app.js index 169af9ff1..6b8f41f1b 100644 --- a/web/app.js +++ b/web/app.js @@ -2155,27 +2155,23 @@ function webViewerResetPermissions() { } function webViewerPageRendered({ pageNumber, timestamp, error }) { - const pageIndex = pageNumber - 1; - const pageView = PDFViewerApplication.pdfViewer.getPageView(pageIndex); - // If the page is still visible when it has finished rendering, // ensure that the page number input loading indicator is hidden. if (pageNumber === PDFViewerApplication.page) { PDFViewerApplication.toolbar.updateLoadingIndicatorState(false); } - // Prevent errors in the edge-case where the PDF document is removed *before* - // the 'pagerendered' event handler is invoked. - if (!pageView) { - return; - } - // Use the rendered page to set the corresponding thumbnail image. if (PDFViewerApplication.pdfSidebar.isThumbnailViewVisible) { - const thumbnailView = PDFViewerApplication.pdfThumbnailViewer.getThumbnail( - pageIndex + const pageView = PDFViewerApplication.pdfViewer.getPageView( + /* index = */ pageNumber - 1 ); - thumbnailView.setImage(pageView); + const thumbnailView = PDFViewerApplication.pdfThumbnailViewer.getThumbnail( + /* index = */ pageNumber - 1 + ); + if (pageView && thumbnailView) { + thumbnailView.setImage(pageView); + } } if (error) { @@ -2302,9 +2298,10 @@ function webViewerUpdateViewarea(evt) { // Show/hide the loading indicator in the page number input element. const currentPage = PDFViewerApplication.pdfViewer.getPageView( - PDFViewerApplication.page - 1 + /* index = */ PDFViewerApplication.page - 1 ); - const loading = currentPage.renderingState !== RenderingStates.FINISHED; + const loading = + (currentPage && currentPage.renderingState) !== RenderingStates.FINISHED; PDFViewerApplication.toolbar.updateLoadingIndicatorState(loading); } @@ -2549,14 +2546,12 @@ function webViewerRotationChanging(evt) { PDFViewerApplication.pdfViewer.currentPageNumber = evt.pageNumber; } -function webViewerPageChanging(evt) { - const page = evt.pageNumber; - - PDFViewerApplication.toolbar.setPageNumber(page, evt.pageLabel || null); - PDFViewerApplication.secondaryToolbar.setPageNumber(page); +function webViewerPageChanging({ pageNumber, pageLabel }) { + PDFViewerApplication.toolbar.setPageNumber(pageNumber, pageLabel); + PDFViewerApplication.secondaryToolbar.setPageNumber(pageNumber); if (PDFViewerApplication.pdfSidebar.isThumbnailViewVisible) { - PDFViewerApplication.pdfThumbnailViewer.scrollThumbnailIntoView(page); + PDFViewerApplication.pdfThumbnailViewer.scrollThumbnailIntoView(pageNumber); } }