UNPKG

framer-motion

Version:

A simple and powerful React animation library

30 lines (27 loc) 1.09 kB
import { __read } from 'tslib'; import { transform } from '../utils/transform.mjs'; import { useCombineMotionValues } from './use-combine-values.mjs'; import { useConstant } from '../utils/use-constant.mjs'; function useTransform(input, inputRangeOrTransformer, outputRange, options) { var transformer = typeof inputRangeOrTransformer === "function" ? inputRangeOrTransformer : transform(inputRangeOrTransformer, outputRange, options); return Array.isArray(input) ? useListTransform(input, transformer) : useListTransform([input], function (_a) { var _b = __read(_a, 1), latest = _b[0]; return transformer(latest); }); } function useListTransform(values, transformer) { var latest = useConstant(function () { return []; }); return useCombineMotionValues(values, function () { latest.length = 0; var numValues = values.length; for (var i = 0; i < numValues; i++) { latest[i] = values[i].get(); } return transformer(latest); }); } export { useTransform };