Untitled
unknown
jsx
3 years ago
1.4 kB
9
Indexable
import React from "react";
import { Typography } from "neetoui";
import { Redirect, Route, Switch } from "react-router-dom";
import PrivateRoute from "components/Common/PrivateRoute";
import { useAuthState } from "contexts/auth";
import { useSettingsState } from "contexts/settings";
import {
PASSWORD_VERIFICATION_ROUTE,
ARTICLES_PREVIEW_ROUTE,
PUBLIC_PATH,
PASSWORD_VERIFICATION_PATH,
} from "../routeConstants";
const Public = () => {
const { siteName, passwordProtectionStatus } = useSettingsState();
const { authToken } = useAuthState();
const isLoggedIn = !passwordProtectionStatus || !!authToken;
return (
<>
<header className="w-full text-center">
<Typography className="my-3" style="h4">
{siteName}
</Typography>
<hr />
</header>
<Switch>
<Route
component={PASSWORD_VERIFICATION_ROUTE.component}
path={PASSWORD_VERIFICATION_ROUTE.path}
/>
<PrivateRoute
component={ARTICLES_PREVIEW_ROUTE.component}
condition={isLoggedIn}
path={ARTICLES_PREVIEW_ROUTE.path}
redirectRoute={PASSWORD_VERIFICATION_PATH}
/>
<Redirect
from={PUBLIC_PATH}
to={isLoggedIn ? "/public/articles/" : PASSWORD_VERIFICATION_PATH}
/>
</Switch>
</>
);
};
export default Public;
Editor is loading...