import React from "react"; import { Route, RouterProvider, createBrowserRouter, createRoutesFromElements, } from "react-router-dom"; import { AuthApi } from "./api/AuthApi"; import { ServerApi } from "./api/ServerApi"; import { HomeRoute } from "./routes/HomeRoute"; import { NotFoundRoute } from "./routes/NotFound"; import { LoginRoute } from "./routes/auth/LoginRoute"; import { OIDCCbRoute } from "./routes/auth/OIDCCbRoute"; import { BaseAuthenticatedPage } from "./widgets/BaseAuthenticatedPage"; import { BaseLoginPage } from "./widgets/BaseLoginPage"; import { TokensRoute } from "./routes/TokensRoute"; import { AccountsRoute } from "./routes/AccountsRoute"; import { AccountRoute } from "./routes/AccountRoute"; interface AuthContext { signedIn: boolean; setSignedIn: (signedIn: boolean) => void; } const AuthContextK = React.createContext(null); export function App() { const [signedIn, setSignedIn] = React.useState(AuthApi.SignedIn); const context: AuthContext = { signedIn: signedIn, setSignedIn: (s) => { setSignedIn(s); location.reload(); }, }; const router = createBrowserRouter( createRoutesFromElements( signedIn || ServerApi.Config.auth_disabled ? ( }> } /> } /> } /> } /> } /> ) : ( }> } /> } /> } /> ) ) ); return ( ); } export function useAuth(): AuthContext { return React.use(AuthContextK)!; }