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 };
|