@zoom-image/react
Version:
Adapter of zoom image core for React
1 lines • 1.56 kB
Source Map (JSON)
{"version":3,"sources":["../src/useZoomImageClick.ts"],"names":[],"mappings":";AAAA,SAAS,aAAa,WAAW,QAAQ,gBAAgB;AACzD,SAAS,wBAAwB,6BAA6B;AAIvD,SAAS,oBAAoB;AAClC,QAAM,SAAS,OAAiD;AAChE,QAAM,CAAC,gBAAgB,oBAAoB,IAAI,SAA6B;AAAA,IAC1E,iBAAiB;AAAA,EACnB,CAAC;AAED,QAAM,kBAAkB,YAAY,IAAI,QAAkD;AACxF,WAAO,SAAS,QAAQ;AACxB,WAAO,UAAU,sBAAsB,GAAG,GAAG;AAC7C,yBAAqB,OAAO,QAAQ,SAAS,CAAC;AAE9C,WAAO,QAAQ,UAAU,CAAC,EAAE,MAAM,MAAM;AACtC,2BAAqB,KAAK;AAAA,IAC5B,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAEL,YAAU,MAAM;AACd,WAAO,MAAM;AACX,aAAO,SAAS,QAAQ;AAAA,IAC1B;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF","sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\"\nimport { createZoomImageClick as _createZoomImageClick } from \"@zoom-image/core\"\n\nimport type { ZoomImageMoveState } from \"@zoom-image/core\"\n\nexport function useZoomImageClick() {\n const result = useRef<ReturnType<typeof _createZoomImageClick>>()\n const [zoomImageState, updateZoomImageState] = useState<ZoomImageMoveState>({\n zoomedImgStatus: \"idle\",\n })\n\n const createZoomImage = useCallback((...arg: Parameters<typeof _createZoomImageClick>) => {\n result.current?.cleanup()\n result.current = _createZoomImageClick(...arg)\n updateZoomImageState(result.current.getState())\n\n result.current.subscribe(({ state }) => {\n updateZoomImageState(state)\n })\n }, [])\n\n useEffect(() => {\n return () => {\n result.current?.cleanup()\n }\n }, [])\n\n return {\n createZoomImage,\n zoomImageState,\n }\n}\n"]}