UNPKG

@gfazioli/mantine-text-animate

Version:

The TextAnimate component allows you to animate text with various effects.

37 lines (34 loc) 1.01 kB
'use client'; import { useState, useRef, useCallback } from 'react'; function useTextAnimate(initialDirection = void 0) { const [animate, setAnimate] = useState(initialDirection); const [isAnimating, setIsAnimating] = useState(false); const [key, setKey] = useState(0); const animatingRef = useRef(false); const replay = useCallback(() => { setKey((prev) => prev + 1); animatingRef.current = true; setIsAnimating(true); }, []); const handleSetAnimate = useCallback((direction) => { setAnimate(direction); if (direction === "in" || direction === "out" || direction === "loop") { animatingRef.current = true; setIsAnimating(true); } }, []); const onAnimationComplete = useCallback(() => { animatingRef.current = false; setIsAnimating(false); }, []); return { animate, setAnimate: handleSetAnimate, replay, isAnimating, key, onAnimationComplete }; } export { useTextAnimate }; //# sourceMappingURL=use-text-animate.mjs.map