14 lines
485 B
JavaScript
14 lines
485 B
JavaScript
|
import { useInsertionEffect } from 'react';
|
||
|
|
||
|
function useMotionValueEvent(value, event, callback) {
|
||
|
/**
|
||
|
* useInsertionEffect will create subscriptions before any other
|
||
|
* effects will run. Effects run upwards through the tree so it
|
||
|
* can be that binding a useLayoutEffect higher up the tree can
|
||
|
* miss changes from lower down the tree.
|
||
|
*/
|
||
|
useInsertionEffect(() => value.on(event, callback), [value, event, callback]);
|
||
|
}
|
||
|
|
||
|
export { useMotionValueEvent };
|