Files
SnowLuma/.pnpm-store/v11/files/be/1343882edb0944a112923bc3499eaf26d00120572a0a4a64ad4b699e718e7938eb87a67a3f0060f18361b6caf59df658d8ef1afa4e2f6fcf13192c0a153d7b
T
TanTan 2a69b23b47
Dev Build / cleanup (push) Waiting to run
Dev Build / typecheck (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:27:07 +08:00

24 lines
891 B
Plaintext

"use client";
import { useMemo } from 'react';
import { useConstant } from '../../utils/use-constant.mjs';
import { useUnmountEffect } from '../../utils/use-unmount-effect.mjs';
import { useReducedMotionConfig } from '../../utils/reduced-motion/use-reduced-motion-config.mjs';
import { createScopedAnimate } from '../animate/index.mjs';
function useAnimate() {
const scope = useConstant(() => ({
current: null, // Will be hydrated by React
animations: [],
}));
const reduceMotion = useReducedMotionConfig() ?? undefined;
const animate = useMemo(() => createScopedAnimate({ scope, reduceMotion }), [scope, reduceMotion]);
useUnmountEffect(() => {
scope.animations.forEach((animation) => animation.stop());
scope.animations.length = 0;
});
return [scope, animate];
}
export { useAnimate };
//# sourceMappingURL=use-animate.mjs.map