Mission Control Dashboard - Initial implementation
This commit is contained in:
37
node_modules/framer-motion/dist/es/value/use-velocity.mjs
generated
vendored
Normal file
37
node_modules/framer-motion/dist/es/value/use-velocity.mjs
generated
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
"use client";
|
||||
import { frame } from 'motion-dom';
|
||||
import { useMotionValueEvent } from '../utils/use-motion-value-event.mjs';
|
||||
import { useMotionValue } from './use-motion-value.mjs';
|
||||
|
||||
/**
|
||||
* Creates a `MotionValue` that updates when the velocity of the provided `MotionValue` changes.
|
||||
*
|
||||
* ```javascript
|
||||
* const x = useMotionValue(0)
|
||||
* const xVelocity = useVelocity(x)
|
||||
* const xAcceleration = useVelocity(xVelocity)
|
||||
* ```
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
function useVelocity(value) {
|
||||
const velocity = useMotionValue(value.getVelocity());
|
||||
const updateVelocity = () => {
|
||||
const latest = value.getVelocity();
|
||||
velocity.set(latest);
|
||||
/**
|
||||
* If we still have velocity, schedule an update for the next frame
|
||||
* to keep checking until it is zero.
|
||||
*/
|
||||
if (latest)
|
||||
frame.update(updateVelocity);
|
||||
};
|
||||
useMotionValueEvent(value, "change", () => {
|
||||
// Schedule an update to this value at the end of the current frame.
|
||||
frame.update(updateVelocity, false, true);
|
||||
});
|
||||
return velocity;
|
||||
}
|
||||
|
||||
export { useVelocity };
|
||||
//# sourceMappingURL=use-velocity.mjs.map
|
||||
Reference in New Issue
Block a user