@gfazioli/mantine-text-animate
Version:
The TextAnimate component allows you to animate text with various effects.
39 lines (35 loc) • 1.06 kB
JavaScript
'use client';
;
var React = require('react');
function useTextAnimate(initialDirection = void 0) {
const [animate, setAnimate] = React.useState(initialDirection);
const [isAnimating, setIsAnimating] = React.useState(false);
const [key, setKey] = React.useState(0);
const animatingRef = React.useRef(false);
const replay = React.useCallback(() => {
setKey((prev) => prev + 1);
animatingRef.current = true;
setIsAnimating(true);
}, []);
const handleSetAnimate = React.useCallback((direction) => {
setAnimate(direction);
if (direction === "in" || direction === "out" || direction === "loop") {
animatingRef.current = true;
setIsAnimating(true);
}
}, []);
const onAnimationComplete = React.useCallback(() => {
animatingRef.current = false;
setIsAnimating(false);
}, []);
return {
animate,
setAnimate: handleSetAnimate,
replay,
isAnimating,
key,
onAnimationComplete
};
}
exports.useTextAnimate = useTextAnimate;
//# sourceMappingURL=use-text-animate.cjs.map