| 1234567891011121314151617181920212223242526272829 |
- import { transform } from '../utils/transform.mjs';
- import { useConstant } from '../utils/use-constant.mjs';
- import { useCombineMotionValues } from './use-combine-values.mjs';
- import { useComputed } from './use-computed.mjs';
- function useTransform(input, inputRangeOrTransformer, outputRange, options) {
- if (typeof input === "function") {
- return useComputed(input);
- }
- const transformer = typeof inputRangeOrTransformer === "function"
- ? inputRangeOrTransformer
- : transform(inputRangeOrTransformer, outputRange, options);
- return Array.isArray(input)
- ? useListTransform(input, transformer)
- : useListTransform([input], ([latest]) => transformer(latest));
- }
- function useListTransform(values, transformer) {
- const latest = useConstant(() => []);
- return useCombineMotionValues(values, () => {
- latest.length = 0;
- const numValues = values.length;
- for (let i = 0; i < numValues; i++) {
- latest[i] = values[i].get();
- }
- return transformer(latest);
- });
- }
- export { useTransform };
|