diff --git a/frontend/src/components/Header.jsx b/frontend/src/components/Header.jsx index db77fa1d..7ac5cc7b 100644 --- a/frontend/src/components/Header.jsx +++ b/frontend/src/components/Header.jsx @@ -1,8 +1,28 @@ +import { useState, useEffect } from 'react'; import CopyButton from './ui/copy-button'; import { useTheme } from '../context/ThemeContext'; +import { NETWORK_NAME, STACKS_API_BASE } from '../config/contracts'; export default function Header({ userData, onAuth, authLoading }) { const { theme, toggleTheme } = useTheme(); + const [apiReachable, setApiReachable] = useState(null); + + useEffect(() => { + let cancelled = false; + const checkApi = async () => { + try { + const res = await fetch(`${STACKS_API_BASE}/v2/info`, { signal: AbortSignal.timeout(5000) }); + if (!cancelled) setApiReachable(res.ok); + } catch { + if (!cancelled) setApiReachable(false); + } + }; + checkApi(); + const interval = setInterval(checkApi, 30000); + return () => { cancelled = true; clearInterval(interval); }; + }, []); + + const networkLabel = NETWORK_NAME.charAt(0).toUpperCase() + NETWORK_NAME.slice(1); return (