@bigfishtv/cockpit
Version:
20 lines (14 loc) • 539 B
JavaScript
import React from 'react'
import { connect } from 'react-redux'
import { Redirect } from 'react-router-dom'
import { userCanAccess } from '../utils/roleUtils'
import Forbidden from './template/Forbidden'
const ProtectedRedirect = ({ viewer, routes }) =>
routes.reduce((acc, route) => {
if (acc) return acc
if (userCanAccess(route.resource, viewer)) return <Redirect to={route.to} />
}, null) || <Forbidden />
function mapStateToProps({ viewer }) {
return { viewer }
}
export default connect(mapStateToProps)(ProtectedRedirect)