private
unknown
plain_text
4 years ago
927 B
12
Indexable
import React from "react";
import { Redirect, Route } from "react-router";
import useAuth from "../../hooks/useAuth";
const PrivateRoute = ({ children, ...rest }) => {
const { user, loading } = useAuth();
if (loading) {
return (
<div className="d-flex justify-content-center align-items-center spinner">
<div
className="spinner-border"
role="status"
style={{ width: "9rem", height: "9rem" }}
>
<span className="visually-hidden">Loading...</span>
</div>
</div>
);
}
return (
<Route
{...rest}
render={({ location }) =>
user.email ? (
children
) : (
<Redirect
to={{
pathname: "/login",
state: { from: location },
}}
/>
)
}
/>
);
};
export default PrivateRoute;
Editor is loading...