UNPKG

@zoom-image/react

Version:
122 lines (117 loc) 3.23 kB
'use strict'; var core = require('@zoom-image/core'); var react = require('react'); // src/useZoomImageWheel.ts // src/shared.ts function noop() { } // src/useZoomImageWheel.ts function useZoomImageWheel() { const result = react.useRef(); const [zoomImageState, updateZoomImageState] = react.useState({ currentZoom: 1, enable: false, currentPositionX: -1, currentPositionY: -1, currentRotation: 0 }); const createZoomImage = react.useCallback((...arg) => { result.current?.cleanup(); result.current = core.createZoomImageWheel(...arg); updateZoomImageState(result.current.getState()); result.current.subscribe(({ state }) => { updateZoomImageState(state); }); }, []); const getZoomImageState = react.useCallback(() => { return result.current?.getState(); }, []); react.useEffect(() => { return () => { result.current?.cleanup(); }; }, []); return { createZoomImage, zoomImageState, getZoomImageState, setZoomImageState: result.current?.setState ?? noop }; } function useZoomImageHover() { const result = react.useRef(); const [zoomImageState, updateZoomImageState] = react.useState({ enabled: false, zoomedImgStatus: "idle" }); const createZoomImage = react.useCallback((...arg) => { result.current?.cleanup(); result.current = core.createZoomImageHover(...arg); updateZoomImageState(result.current.getState()); result.current.subscribe(({ state }) => { updateZoomImageState(state); }); }, []); react.useEffect(() => { return () => { result.current?.cleanup(); }; }, []); return { createZoomImage, zoomImageState, setZoomImageState: result.current?.setState ?? noop }; } function useZoomImageMove() { const result = react.useRef(); const [zoomImageState, updateZoomImageState] = react.useState({ zoomedImgStatus: "idle" }); const createZoomImage = react.useCallback((...arg) => { result.current?.cleanup(); result.current = core.createZoomImageMove(...arg); updateZoomImageState(result.current.getState()); result.current.subscribe(({ state }) => { updateZoomImageState(state); }); }, []); react.useEffect(() => { return () => { result.current?.cleanup(); }; }, []); return { createZoomImage, zoomImageState }; } function useZoomImageClick() { const result = react.useRef(); const [zoomImageState, updateZoomImageState] = react.useState({ zoomedImgStatus: "idle" }); const createZoomImage = react.useCallback((...arg) => { result.current?.cleanup(); result.current = core.createZoomImageClick(...arg); updateZoomImageState(result.current.getState()); result.current.subscribe(({ state }) => { updateZoomImageState(state); }); }, []); react.useEffect(() => { return () => { result.current?.cleanup(); }; }, []); return { createZoomImage, zoomImageState }; } exports.useZoomImageClick = useZoomImageClick; exports.useZoomImageHover = useZoomImageHover; exports.useZoomImageMove = useZoomImageMove; exports.useZoomImageWheel = useZoomImageWheel; //# sourceMappingURL=out.js.map //# sourceMappingURL=index.js.map