import { useEffect, useState } from 'react'; import type { ServiceAlert } from '@/lib/ridebus'; import { getActiveAlerts, watchAlertValidity } from '@/lib/serviceAlerts'; export function useActiveAlerts(alerts: ServiceAlert[], cityId: number) { const [now, setNow] = useState(Date.now); useEffect(() => { const refresh = () => setNow(Date.now()); const refreshVisible = () => { if (document.visibilityState === 'visible') refresh(); }; const stopWatching = watchAlertValidity(alerts, refresh); document.addEventListener('visibilitychange', refreshVisible); window.addEventListener('focus', refresh); return () => { stopWatching(); document.removeEventListener('visibilitychange', refreshVisible); window.removeEventListener('focus', refresh); }; }, [alerts]); return getActiveAlerts(alerts, cityId, now); }