import React from 'react'; type UsePulseAnimationOptions = { intervalMs?: number; delayMs?: number; }; export function usePulseAnimation({ intervalMs = 2400, delayMs = 0 }: UsePulseAnimationOptions = {}) { const [active, setActive] = React.useState(false); React.useEffect(() => { let interval: ReturnType | undefined; let timeout: ReturnType | undefined; const start = () => { setActive((prev) => !prev); interval = setInterval(() => { setActive((prev) => !prev); }, intervalMs); }; if (delayMs > 0) { timeout = setTimeout(start, delayMs); } else { start(); } return () => { if (interval) { clearInterval(interval); } if (timeout) { clearTimeout(timeout); } }; }, [delayMs, intervalMs]); return active; }