import { useEffect, useState } from "react"; import { useHistory, Route, Redirect} from 'react-router-dom'; import { connect } from "react-redux"; const ProtectedRoute = ({fallback='/', roles=["admin"], auth, ...routeProps}) => { const [acl, setAcl] = useState([]); const [access, setAccess] = useState(false); let history = useHistory(); useEffect(() => { if (auth && auth.payload && auth.payload.sub.acl.length !== 0) { setAcl(auth.payload.sub.acl); } else setAcl('anon'); const newAcl = roles.filter((item) => acl.includes(item)); if (newAcl.length) { setAccess(true); } }) return ( < > { access? : } ) } // // const CRoute = connect(state => ({auth: state.auth}))(ProtectedRoute); export default CRoute;