UNPKG

@zoom-image/react

Version:
1 lines 1.73 kB
{"version":3,"sources":["../src/useZoomImageHover.ts"],"names":[],"mappings":";;;;;AAAA,SAAS,aAAa,WAAW,QAAQ,gBAAgB;AACzD,SAAS,wBAAwB,6BAA6B;AAKvD,SAAS,oBAAoB;AAClC,QAAM,SAAS,OAAiD;AAChE,QAAM,CAAC,gBAAgB,oBAAoB,IAAI,SAA8B;AAAA,IAC3E,SAAS;AAAA,IACT,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,IACA,mBAAmB,OAAO,SAAS,YAAY;AAAA,EACjD;AACF","sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\"\nimport { createZoomImageHover as _createZoomImageHover } from \"@zoom-image/core\"\nimport { noop } from \"./shared\"\n\nimport type { ZoomImageHoverState } from \"@zoom-image/core\"\n\nexport function useZoomImageHover() {\n const result = useRef<ReturnType<typeof _createZoomImageHover>>()\n const [zoomImageState, updateZoomImageState] = useState<ZoomImageHoverState>({\n enabled: false,\n zoomedImgStatus: \"idle\",\n })\n\n const createZoomImage = useCallback((...arg: Parameters<typeof _createZoomImageHover>) => {\n result.current?.cleanup()\n result.current = _createZoomImageHover(...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 setZoomImageState: result.current?.setState ?? noop,\n }\n}\n"]}