openreplay/frontend/app/PublicRoutes.tsx
Andrey Babushkin fd5c0c9747
Add lokalisation (#3092)
* applied eslint

* add locales and lint the project

* removed error boundary

* updated locales

* fix min files

* fix locales
2025-03-06 17:43:15 +01:00

60 lines
1.9 KiB
TypeScript

import React, { lazy, Suspense, useEffect } from 'react';
import { Loader } from 'UI';
import { Redirect, Route, Switch } from 'react-router-dom';
import Signup from 'Components/Signup/Signup';
import SupportCallout from 'Shared/SupportCallout';
import { useStore } from 'App/mstore';
import { observer } from 'mobx-react-lite';
import * as routes from 'App/routes';
const LOGIN_PATH = routes.login();
const SIGNUP_PATH = routes.signup();
const FORGOT_PASSWORD = routes.forgotPassword();
const SPOT_PATH = routes.spot();
const Login = lazy(() => import('Components/Login/Login'));
const ForgotPassword = lazy(
() => import('Components/ForgotPassword/ForgotPassword'),
);
const Spot = lazy(() => import('Components/Spots/SpotPlayer/SpotPlayer'));
function PublicRoutes() {
const { userStore } = useStore();
const { authDetails } = userStore.authStore;
const { isEnterprise } = userStore;
const hideSupport =
isEnterprise ||
location.pathname.includes('spots') ||
location.pathname.includes('view-spot');
const [loading, setLoading] = React.useState(true);
useEffect(() => {
if (authDetails && !authDetails.tenants) {
userStore.authStore.fetchTenants().then(() => setLoading(false));
} else {
setLoading(false);
}
}, []);
return (
<Loader loading={loading} className="flex-1">
<Suspense fallback={<Loader loading className="flex-1" />}>
<Switch>
<Route exact strict path={SPOT_PATH} component={Spot} />
<Route
exact
strict
path={FORGOT_PASSWORD}
component={ForgotPassword}
/>
<Route exact strict path={LOGIN_PATH} component={Login} />
<Route exact strict path={SIGNUP_PATH} component={Signup} />
<Redirect to={LOGIN_PATH} />
</Switch>
{!hideSupport && <SupportCallout />}
</Suspense>
</Loader>
);
}
export default observer(PublicRoutes);