From 2e3f56c0d472b10825e20217c9cb63e1fab9ea45 Mon Sep 17 00:00:00 2001 From: Alf Eaton Date: Mon, 29 Nov 2021 11:59:34 +0000 Subject: [PATCH] Check for the presence of window.ResizeObserver (#5924) GitOrigin-RevId: d072c9313967b52370a870fc2d30b50c498d8d1d --- .../js/features/pdf-preview/components/pdf-js-viewer.js | 2 +- .../js/features/pdf-preview/hooks/use-resize-observer.js | 2 +- .../features/pdf-preview/hooks/use-toolbar-breakpoint.js | 9 +++++---- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/services/web/frontend/js/features/pdf-preview/components/pdf-js-viewer.js b/services/web/frontend/js/features/pdf-preview/components/pdf-js-viewer.js index e8e153f1af..d3c1aae8ac 100644 --- a/services/web/frontend/js/features/pdf-preview/components/pdf-js-viewer.js +++ b/services/web/frontend/js/features/pdf-preview/components/pdf-js-viewer.js @@ -220,7 +220,7 @@ function PdfJsViewer({ url }) { // adjust the scale when the container is resized useEffect(() => { - if (pdfJsWrapper) { + if (pdfJsWrapper && 'ResizeObserver' in window) { const resizeListener = () => { pdfJsWrapper.updateOnResize() } diff --git a/services/web/frontend/js/features/pdf-preview/hooks/use-resize-observer.js b/services/web/frontend/js/features/pdf-preview/hooks/use-resize-observer.js index b14a4af141..56003230ab 100644 --- a/services/web/frontend/js/features/pdf-preview/hooks/use-resize-observer.js +++ b/services/web/frontend/js/features/pdf-preview/hooks/use-resize-observer.js @@ -5,7 +5,7 @@ export const useResizeObserver = handleResize => { const elementRef = useCallback( element => { - if (element) { + if (element && 'ResizeObserver' in window) { if (resizeRef.current) { resizeRef.current.observer.unobserve(resizeRef.current.element) } diff --git a/services/web/frontend/js/features/pdf-preview/hooks/use-toolbar-breakpoint.js b/services/web/frontend/js/features/pdf-preview/hooks/use-toolbar-breakpoint.js index 252d929d0e..8fa1704f70 100644 --- a/services/web/frontend/js/features/pdf-preview/hooks/use-toolbar-breakpoint.js +++ b/services/web/frontend/js/features/pdf-preview/hooks/use-toolbar-breakpoint.js @@ -11,13 +11,14 @@ export default function useToolbarBreakpoint(element) { const [breakpoint, setBreakpoint] = useState(2) const [recalculate, setRecalculate] = useState(true) - const [resizeObserver] = useState( - () => - new ResizeObserver(() => { + const [resizeObserver] = useState(() => { + if ('ResizeObserver' in window) { + return new ResizeObserver(() => { setBreakpoint(2) setRecalculate(true) }) - ) + } + }) const [mutationObserver] = useState( () =>