1 line
6.6 KiB
JSON
1 line
6.6 KiB
JSON
{"ast":null,"code":"import { motionValue } from 'motion-dom';\nimport { invariant } from 'motion-utils';\nimport { useRef, useCallback, useEffect } from 'react';\nimport { scroll } from '../render/dom/scroll/index.mjs';\nimport { useConstant } from '../utils/use-constant.mjs';\nimport { useIsomorphicLayoutEffect } from '../utils/use-isomorphic-effect.mjs';\nconst createScrollMotionValues = () => ({\n scrollX: motionValue(0),\n scrollY: motionValue(0),\n scrollXProgress: motionValue(0),\n scrollYProgress: motionValue(0)\n});\nconst isRefPending = ref => {\n if (!ref) return false;\n return !ref.current;\n};\nfunction useScroll({\n container,\n target,\n ...options\n} = {}) {\n const values = useConstant(createScrollMotionValues);\n const scrollAnimation = useRef(null);\n const needsStart = useRef(false);\n const start = useCallback(() => {\n scrollAnimation.current = scroll((_progress, {\n x,\n y\n }) => {\n values.scrollX.set(x.current);\n values.scrollXProgress.set(x.progress);\n values.scrollY.set(y.current);\n values.scrollYProgress.set(y.progress);\n }, {\n ...options,\n container: container?.current || undefined,\n target: target?.current || undefined\n });\n return () => {\n scrollAnimation.current?.();\n };\n }, [container, target, JSON.stringify(options.offset)]);\n useIsomorphicLayoutEffect(() => {\n needsStart.current = false;\n if (isRefPending(container) || isRefPending(target)) {\n needsStart.current = true;\n return;\n } else {\n return start();\n }\n }, [start]);\n useEffect(() => {\n if (needsStart.current) {\n invariant(!isRefPending(container), \"Container ref is defined but not hydrated\", \"use-scroll-ref\");\n invariant(!isRefPending(target), \"Target ref is defined but not hydrated\", \"use-scroll-ref\");\n return start();\n } else {\n return;\n }\n }, [start]);\n return values;\n}\nexport { useScroll };","map":{"version":3,"names":["motionValue","invariant","useRef","useCallback","useEffect","scroll","useConstant","useIsomorphicLayoutEffect","createScrollMotionValues","scrollX","scrollY","scrollXProgress","scrollYProgress","isRefPending","ref","current","useScroll","container","target","options","values","scrollAnimation","needsStart","start","_progress","x","y","set","progress","undefined","JSON","stringify","offset"],"sources":["/home/gnx/Desktop/ETB/ETB-FrontEnd/node_modules/framer-motion/dist/es/value/use-scroll.mjs"],"sourcesContent":["import { motionValue } from 'motion-dom';\nimport { invariant } from 'motion-utils';\nimport { useRef, useCallback, useEffect } from 'react';\nimport { scroll } from '../render/dom/scroll/index.mjs';\nimport { useConstant } from '../utils/use-constant.mjs';\nimport { useIsomorphicLayoutEffect } from '../utils/use-isomorphic-effect.mjs';\n\nconst createScrollMotionValues = () => ({\n scrollX: motionValue(0),\n scrollY: motionValue(0),\n scrollXProgress: motionValue(0),\n scrollYProgress: motionValue(0),\n});\nconst isRefPending = (ref) => {\n if (!ref)\n return false;\n return !ref.current;\n};\nfunction useScroll({ container, target, ...options } = {}) {\n const values = useConstant(createScrollMotionValues);\n const scrollAnimation = useRef(null);\n const needsStart = useRef(false);\n const start = useCallback(() => {\n scrollAnimation.current = scroll((_progress, { x, y, }) => {\n values.scrollX.set(x.current);\n values.scrollXProgress.set(x.progress);\n values.scrollY.set(y.current);\n values.scrollYProgress.set(y.progress);\n }, {\n ...options,\n container: container?.current || undefined,\n target: target?.current || undefined,\n });\n return () => {\n scrollAnimation.current?.();\n };\n }, [container, target, JSON.stringify(options.offset)]);\n useIsomorphicLayoutEffect(() => {\n needsStart.current = false;\n if (isRefPending(container) || isRefPending(target)) {\n needsStart.current = true;\n return;\n }\n else {\n return start();\n }\n }, [start]);\n useEffect(() => {\n if (needsStart.current) {\n invariant(!isRefPending(container), \"Container ref is defined but not hydrated\", \"use-scroll-ref\");\n invariant(!isRefPending(target), \"Target ref is defined but not hydrated\", \"use-scroll-ref\");\n return start();\n }\n else {\n return;\n }\n }, [start]);\n return values;\n}\n\nexport { useScroll };\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,YAAY;AACxC,SAASC,SAAS,QAAQ,cAAc;AACxC,SAASC,MAAM,EAAEC,WAAW,EAAEC,SAAS,QAAQ,OAAO;AACtD,SAASC,MAAM,QAAQ,gCAAgC;AACvD,SAASC,WAAW,QAAQ,2BAA2B;AACvD,SAASC,yBAAyB,QAAQ,oCAAoC;AAE9E,MAAMC,wBAAwB,GAAGA,CAAA,MAAO;EACpCC,OAAO,EAAET,WAAW,CAAC,CAAC,CAAC;EACvBU,OAAO,EAAEV,WAAW,CAAC,CAAC,CAAC;EACvBW,eAAe,EAAEX,WAAW,CAAC,CAAC,CAAC;EAC/BY,eAAe,EAAEZ,WAAW,CAAC,CAAC;AAClC,CAAC,CAAC;AACF,MAAMa,YAAY,GAAIC,GAAG,IAAK;EAC1B,IAAI,CAACA,GAAG,EACJ,OAAO,KAAK;EAChB,OAAO,CAACA,GAAG,CAACC,OAAO;AACvB,CAAC;AACD,SAASC,SAASA,CAAC;EAAEC,SAAS;EAAEC,MAAM;EAAE,GAAGC;AAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;EACvD,MAAMC,MAAM,GAAGd,WAAW,CAACE,wBAAwB,CAAC;EACpD,MAAMa,eAAe,GAAGnB,MAAM,CAAC,IAAI,CAAC;EACpC,MAAMoB,UAAU,GAAGpB,MAAM,CAAC,KAAK,CAAC;EAChC,MAAMqB,KAAK,GAAGpB,WAAW,CAAC,MAAM;IAC5BkB,eAAe,CAACN,OAAO,GAAGV,MAAM,CAAC,CAACmB,SAAS,EAAE;MAAEC,CAAC;MAAEC;IAAG,CAAC,KAAK;MACvDN,MAAM,CAACX,OAAO,CAACkB,GAAG,CAACF,CAAC,CAACV,OAAO,CAAC;MAC7BK,MAAM,CAACT,eAAe,CAACgB,GAAG,CAACF,CAAC,CAACG,QAAQ,CAAC;MACtCR,MAAM,CAACV,OAAO,CAACiB,GAAG,CAACD,CAAC,CAACX,OAAO,CAAC;MAC7BK,MAAM,CAACR,eAAe,CAACe,GAAG,CAACD,CAAC,CAACE,QAAQ,CAAC;IAC1C,CAAC,EAAE;MACC,GAAGT,OAAO;MACVF,SAAS,EAAEA,SAAS,EAAEF,OAAO,IAAIc,SAAS;MAC1CX,MAAM,EAAEA,MAAM,EAAEH,OAAO,IAAIc;IAC/B,CAAC,CAAC;IACF,OAAO,MAAM;MACTR,eAAe,CAACN,OAAO,GAAG,CAAC;IAC/B,CAAC;EACL,CAAC,EAAE,CAACE,SAAS,EAAEC,MAAM,EAAEY,IAAI,CAACC,SAAS,CAACZ,OAAO,CAACa,MAAM,CAAC,CAAC,CAAC;EACvDzB,yBAAyB,CAAC,MAAM;IAC5Be,UAAU,CAACP,OAAO,GAAG,KAAK;IAC1B,IAAIF,YAAY,CAACI,SAAS,CAAC,IAAIJ,YAAY,CAACK,MAAM,CAAC,EAAE;MACjDI,UAAU,CAACP,OAAO,GAAG,IAAI;MACzB;IACJ,CAAC,MACI;MACD,OAAOQ,KAAK,CAAC,CAAC;IAClB;EACJ,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EACXnB,SAAS,CAAC,MAAM;IACZ,IAAIkB,UAAU,CAACP,OAAO,EAAE;MACpBd,SAAS,CAAC,CAACY,YAAY,CAACI,SAAS,CAAC,EAAE,2CAA2C,EAAE,gBAAgB,CAAC;MAClGhB,SAAS,CAAC,CAACY,YAAY,CAACK,MAAM,CAAC,EAAE,wCAAwC,EAAE,gBAAgB,CAAC;MAC5F,OAAOK,KAAK,CAAC,CAAC;IAClB,CAAC,MACI;MACD;IACJ;EACJ,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EACX,OAAOH,MAAM;AACjB;AAEA,SAASJ,SAAS","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} |