UNPKG

framer-motion

Version:

A simple and powerful React animation library

48 lines (45 loc) 1.23 kB
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) { var values = []; for (var _i = 1; _i < arguments.length; _i++) { values[_i - 1] = arguments[_i]; } /** * Create a function that will build a string from the latest motion values. */ var numFragments = fragments.length; function buildValue() { var output = ""; for (var i = 0; i < numFragments; i++) { output += fragments[i]; var value = values[i]; if (value) output += values[i].get(); } return output; } return useCombineMotionValues(values, buildValue); } export { useMotionTemplate };