UNPKG

framer-motion

Version:

A simple and powerful JavaScript animation library

19 lines (16 loc) 603 B
import { useConstant } from '../../utils/use-constant.mjs'; import { useUnmountEffect } from '../../utils/use-unmount-effect.mjs'; import { createScopedAnimate } from '../animate/index.mjs'; function useAnimate() { const scope = useConstant(() => ({ current: null, // Will be hydrated by React animations: [], })); const animate = useConstant(() => createScopedAnimate(scope)); useUnmountEffect(() => { scope.animations.forEach((animation) => animation.stop()); scope.animations.length = 0; }); return [scope, animate]; } export { useAnimate };