Files
url_tracker_tool/node_modules/@chakra-ui/hooks/dist/esm/use-animation-state.mjs
Andrei 58f8093689 Rebrand from 'Redirect Intelligence v2' to 'URL Tracker Tool V2' throughout UI
- Updated all component headers and documentation
- Changed navbar and footer branding
- Updated homepage hero badge
- Modified page title in index.html
- Simplified footer text to 'Built with ❤️'
- Consistent V2 capitalization across all references
2025-08-19 19:12:23 +00:00

35 lines
867 B
JavaScript

'use client';
import { getOwnerWindow } from '@chakra-ui/utils';
import { useState, useEffect } from 'react';
import { useEventListener } from './use-event-listener.mjs';
function useAnimationState(props) {
const { isOpen, ref } = props;
const [mounted, setMounted] = useState(isOpen);
const [once, setOnce] = useState(false);
useEffect(() => {
if (!once) {
setMounted(isOpen);
setOnce(true);
}
}, [isOpen, once, mounted]);
useEventListener(
() => ref.current,
"animationend",
() => {
setMounted(isOpen);
}
);
const hidden = isOpen ? false : !mounted;
return {
present: !hidden,
onComplete() {
const win = getOwnerWindow(ref.current);
const evt = new win.CustomEvent("animationend", { bubbles: true });
ref.current?.dispatchEvent(evt);
}
};
}
export { useAnimationState };