import { useEffect, useState } from 'react';
const POLL_MS = 2 * 60 * 1000;
export function useVersionCheck(healthUrl) {
    const [updateAvailable, setUpdateAvailable] = useState(false);
    useEffect(() => {
        let seenVersion = null;
        async function check() {
            try {
                const res = await fetch(healthUrl, { cache: 'no-store' });
                if (!res.ok)
                    return;
                const data = await res.json();
                const v = data.version;
                if (!v)
                    return;
                if (seenVersion === null) {
                    seenVersion = v;
                }
                else if (v !== seenVersion) {
                    setUpdateAvailable(true);
                }
            }
            catch {
                // network error — skip silently
            }
        }
        check();
        const interval = setInterval(check, POLL_MS);
        function onVisible() {
            if (document.visibilityState === 'visible')
                check();
        }
        document.addEventListener('visibilitychange', onVisible);
        return () => {
            clearInterval(interval);
            document.removeEventListener('visibilitychange', onVisible);
        };
    }, [healthUrl]);
    return updateAvailable;
}
