46 lines
1.5 KiB
TypeScript
46 lines
1.5 KiB
TypeScript
import { FunctionComponent } from "preact";
|
|
import { ErrorBoundary, lazy, LocationProvider, Route, Router, useLocation } from "preact-iso";
|
|
import { ru } from "primelocale/js/ru.js";
|
|
import { addLocale, locale, PrimeReactProvider } from "primereact/api";
|
|
import { useMountEffect } from "primereact/hooks";
|
|
import Page404 from "./pages/404";
|
|
import LoginPage from "./pages/login";
|
|
import RegisterPage from "./pages/register";
|
|
import { AppProvider, useAppContext } from "./providers/AuthProvider";
|
|
|
|
const HomePage: FunctionComponent = () => {
|
|
const { route } = useLocation();
|
|
const { isLoggedIn } = useAppContext();
|
|
if (isLoggedIn.value) route("/profile/tasks", true);
|
|
else route("/login", true);
|
|
return <div>Redirecting...</div>;
|
|
};
|
|
|
|
export function App() {
|
|
useMountEffect(() => {
|
|
addLocale("ru", ru);
|
|
locale("ru");
|
|
});
|
|
return (
|
|
<AppProvider>
|
|
<PrimeReactProvider
|
|
value={{
|
|
unstyled: true,
|
|
}}
|
|
>
|
|
<LocationProvider>
|
|
<ErrorBoundary>
|
|
<Router>
|
|
<Route path="/" component={HomePage} />
|
|
<Route path="/login" component={LoginPage} />
|
|
<Route path="/register" component={RegisterPage} />
|
|
<Route path="/profile/*" component={lazy(() => import("./pages/profile"))} />
|
|
<Route default component={() => <Page404 />} />
|
|
</Router>
|
|
</ErrorBoundary>
|
|
</LocationProvider>
|
|
</PrimeReactProvider>
|
|
</AppProvider>
|
|
);
|
|
}
|