Blame view

天文台pc/tianwentai-ui/node_modules/framer-motion/dist/es/value/use-motion-template.mjs 1.27 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
41
42
43
44
45
46
47
  "use client";
  import { isMotionValue } from 'motion-dom';
  import { useCombineMotionValues } from './use-combine-values.mjs';
  
  /**
   * Combine multiple motion values into a new one using a string template literal.
   *
   * ```jsx
   * import {
   *   motion,
   *   useSpring,
   *   useMotionValue,
   *   useMotionTemplate
   * } from "framer-motion"
   *
   * function Component() {
   *   const shadowX = useSpring(0)
   *   const shadowY = useMotionValue(0)
   *   const shadow = useMotionTemplate`drop-shadow(${shadowX}px ${shadowY}px 20px rgba(0,0,0,0.3))`
   *
   *   return <motion.div style={{ filter: shadow }} />
   * }
   * ```
   *
   * @public
   */
  function useMotionTemplate(fragments, ...values) {
      /**
       * Create a function that will build a string from the latest motion values.
       */
      const numFragments = fragments.length;
      function buildValue() {
          let output = ``;
          for (let i = 0; i < numFragments; i++) {
              output += fragments[i];
              const value = values[i];
              if (value) {
                  output += isMotionValue(value) ? value.get() : value;
              }
          }
          return output;
      }
      return useCombineMotionValues(values.filter(isMotionValue), buildValue);
  }
  
  export { useMotionTemplate };
  //# sourceMappingURL=use-motion-template.mjs.map