Blame view

天文台pc/tianwentai-ui/node_modules/framer-motion/dist/es/value/use-motion-value.mjs 1.26 KB
bc518174   王天杨   提交两个项目文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
  "use client";
  import { motionValue } from 'motion-dom';
  import { useContext, useState, useEffect } from 'react';
  import { MotionConfigContext } from '../context/MotionConfigContext.mjs';
  import { useConstant } from '../utils/use-constant.mjs';
  
  /**
   * Creates a `MotionValue` to track the state and velocity of a value.
   *
   * Usually, these are created automatically. For advanced use-cases, like use with `useTransform`, you can create `MotionValue`s externally and pass them into the animated component via the `style` prop.
   *
   * ```jsx
   * export const MyComponent = () => {
   *   const scale = useMotionValue(1)
   *
   *   return <motion.div style={{ scale }} />
   * }
   * ```
   *
   * @param initial - The initial state.
   *
   * @public
   */
  function useMotionValue(initial) {
      const value = useConstant(() => motionValue(initial));
      /**
       * If this motion value is being used in static mode, like on
       * the Framer canvas, force components to rerender when the motion
       * value is updated.
       */
      const { isStatic } = useContext(MotionConfigContext);
      if (isStatic) {
          const [, setLatest] = useState(initial);
          useEffect(() => value.on("change", setLatest), []);
      }
      return value;
  }
  
  export { useMotionValue };
  //# sourceMappingURL=use-motion-value.mjs.map