import { useEffect, useRef, useState } from 'react'; /** 실시간 차트 ws-dot receiving 과 동일 — 데이터 수신 시 짧은 형광 플래시 */ export function useLiveReceiveFlash( signal: number | string | null | undefined, enabled: boolean, durationMs = 600, ): boolean { const [flashing, setFlashing] = useState(false); const prevRef = useRef(null); const timerRef = useRef | null>(null); useEffect(() => { if (!enabled || signal == null) { prevRef.current = null; return; } const prev = prevRef.current; prevRef.current = signal; if (prev == null || prev === signal) return; setFlashing(true); if (timerRef.current) clearTimeout(timerRef.current); timerRef.current = setTimeout(() => { setFlashing(false); timerRef.current = null; }, durationMs); }, [signal, enabled, durationMs]); useEffect(() => () => { if (timerRef.current) clearTimeout(timerRef.current); }, []); return flashing; }