erp-platform/ui/src/components/route/PermissionGuard.tsx

19 lines
553 B
TypeScript
Raw Normal View History

2025-05-06 06:45:49 +00:00
import { usePermission } from '@/utils/hooks/usePermission'
import { PropsWithChildren } from 'react'
import { Navigate } from 'react-router-dom'
type PermissionGuardProps = PropsWithChildren<{
permissions?: string[]
}>
const PermissionGuard = (props: PermissionGuardProps) => {
const { permissions = [], children } = props
const { checkPermissions } = usePermission()
const permissionsMatched = checkPermissions(permissions)
return <>{permissionsMatched ? children : <Navigate to="/access-denied" />}</>
}
export default PermissionGuard