import { useCallback, useEffect, useState } from "react"; import { getState, UiState } from "./lib/ipc"; import LoginView from "./views/LoginView"; import HubView from "./views/HubView"; export default function App() { const [state, setState] = useState(null); const [loadError, setLoadError] = useState(null); const refresh = useCallback(async () => { try { setState(await getState()); setLoadError(null); } catch (e) { setLoadError(String(e)); } }, []); useEffect(() => { refresh(); // Periodischer Refresh: spiegelt Server-State (z.B. Release durch Cron) const id = setInterval(refresh, 60_000); return () => clearInterval(id); }, [refresh]); if (!state) { return (
{loadError ?

{loadError}

:
}
); } return (
{state.loggedIn ? ( ) : ( )}
ReBreak Magic für Windows {state.hostname}
); }