From 23eb87edd9c6da8498e45c9c132fbb0f074558e9 Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Sun, 9 Feb 2025 19:40:37 -0600 Subject: [PATCH] Refine zoom viewer behavior --- src/components/image/ZoomControls.tsx | 27 +++++++++------ src/components/image/useImageZoomControls.ts | 36 +++++++++----------- 2 files changed, 33 insertions(+), 30 deletions(-) diff --git a/src/components/image/ZoomControls.tsx b/src/components/image/ZoomControls.tsx index 1d465167..ab48c1de 100644 --- a/src/components/image/ZoomControls.tsx +++ b/src/components/image/ZoomControls.tsx @@ -6,7 +6,7 @@ import { RiCollapseDiagonalLine, RiExpandDiagonalLine } from 'react-icons/ri'; export type ZoomControlsRef = { open: () => void - zoom: (zoomLevel?: number) => void + zoomTo: (zoomLevel?: number) => void } export default function ZoomControls({ @@ -22,28 +22,33 @@ export default function ZoomControls({ }) { const refContainer = useRef(null); - const { open, zoom, zoomLevel, isShown } = useImageZoomControls( + const { + open, + reset, + zoomTo, + zoomLevel, + viewerContainerRef, + } = useImageZoomControls( refContainer, isEnabled, shouldZoomOnFKeydown, ); useEffect(() => { - if (ref) { ref.current = { open, zoom }; } - }, [ref, open, zoom]); + if (ref) { ref.current = { open, zoomTo }; } + }, [ref, open, zoomTo]); - const shouldZoomTo2x = zoomLevel < 2; + const shouldZoomTo2x = zoomLevel !== 2; const button =