20 lines
580 B
JavaScript
20 lines
580 B
JavaScript
|
import { collectMotionValues } from './index.mjs';
|
||
|
import { useCombineMotionValues } from './use-combine-values.mjs';
|
||
|
|
||
|
function useComputed(compute) {
|
||
|
/**
|
||
|
* Open session of collectMotionValues. Any MotionValue that calls get()
|
||
|
* will be saved into this array.
|
||
|
*/
|
||
|
collectMotionValues.current = [];
|
||
|
compute();
|
||
|
const value = useCombineMotionValues(collectMotionValues.current, compute);
|
||
|
/**
|
||
|
* Synchronously close session of collectMotionValues.
|
||
|
*/
|
||
|
collectMotionValues.current = undefined;
|
||
|
return value;
|
||
|
}
|
||
|
|
||
|
export { useComputed };
|