Skip to content

Instantly share code, notes, and snippets.

@danileao
Created May 26, 2020 14:26
Show Gist options
  • Save danileao/2671fdff5131a60a0eb1124cb375f3e5 to your computer and use it in GitHub Desktop.
Save danileao/2671fdff5131a60a0eb1124cb375f3e5 to your computer and use it in GitHub Desktop.
import React from "react";
import {
Route,
Redirect,
RouteComponentProps,
RouteProps,
} from "react-router-dom";
import AuthLayout from "../pages/_layouts/auth";
import DefaultLayout from "../pages/_layouts/default";
interface IRouteProps extends RouteProps {
isPrivate?: boolean;
component: React.ComponentType;
}
const RouteWrapper: React.FC<IRouteProps> = ({
component: Component,
isPrivate = false,
...rest
}) => {
const signed = true;
if (!signed && isPrivate) {
return <Redirect to="/" />;
}
if (signed && !isPrivate) {
return <Redirect to="/artists" />;
}
const Layout = signed ? DefaultLayout : AuthLayout;
return (
<Route
{...rest}
render={(props: RouteProps) => (
<Layout>
<Component {...props} />
</Layout>
)}
/>
);
};
export default RouteWrapper;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment