revite/src/pages/app.tsx

60 lines
2.1 KiB
TypeScript
Raw Normal View History

2021-06-18 20:07:26 +01:00
import { Route, Switch } from "react-router-dom";
2021-06-19 12:34:53 +01:00
import { lazy, Suspense } from "preact/compat";
2021-07-05 11:23:23 +01:00
import ErrorBoundary from "../lib/ErrorBoundary";
import FakeClient from "../lib/FakeClient";
2021-07-05 11:23:23 +01:00
import Context from "../context";
import { CheckAuth } from "../context/revoltjs/CheckAuth";
import Masks from "../components/ui/Masks";
import Preloader from "../components/ui/Preloader";
import Invite from "./invite/Invite";
2021-07-05 11:23:23 +01:00
const Login = lazy(() => import("./login/Login"));
const RevoltApp = lazy(() => import("./RevoltApp"));
2021-06-18 12:05:01 +01:00
export function App() {
2021-07-05 11:25:20 +01:00
return (
<ErrorBoundary section="client">
<Context>
<Masks />
{/*
// @ts-expect-error typings mis-match between preact... and preact? */}
<Suspense fallback={<Preloader type="spinner" />}>
<Switch>
<Route path="/login/verify/:token">
<Login />
</Route>
<Route path="/login/reset/:token">
2021-07-05 11:25:20 +01:00
<Login />
</Route>
<Route path="/invite/:code">
<CheckAuth blockRender>
<FakeClient>
<Invite />
</FakeClient>
</CheckAuth>
<CheckAuth auth blockRender>
<Invite />
</CheckAuth>
</Route>
<Route path="/login">
<CheckAuth>
<Login />
</CheckAuth>
</Route>
<Route path="/">
<CheckAuth auth>
<RevoltApp />
</CheckAuth>
</Route>
</Switch>
</Suspense>
</Context>
</ErrorBoundary>
2021-07-05 11:25:20 +01:00
);
2021-06-18 12:05:01 +01:00
}