// i am also adding some custom authentication as well as Okta’s, but the route is not redirecting to the login page as expected
import React from ‘react’;
import { Route, RouteProps } from ‘react-router-dom’;
import { SecureRoute } from ‘@okta/okta-react’;
import { hasAtLeastOne, useAuth } from ‘auth’;
import IUserDTO from ‘models/DTOs/IUserDTO’;
import Error from ‘./Error’;
interface OktaPermissionRouteProps extends RouteProps {
databaseUser: IUserDTO;
roles: any;
}
const OktaPermissionRoute: React.FC = ({
path,
component,
exact,
roles,
databaseUser,
}) => {
const authentication = useAuth();
const isAuthed =
(databaseUser?.recordStatus as boolean) &&
hasAtLeastOne(authentication.user, roles);
return isAuthed ? (
<SecureRoute path={path} exact={exact} component={component} />
) : (
<Route path="/error" exact component={Error} />
);
};
export default OktaPermissionRoute;