import { Navigate, Outlet } from 'react-router-dom'
import { Result, Spin } from 'antd'
import { useAuth } from '@/stores/auth'
const RequireAuth = () => {
const { user } = useAuth()
if (!user) return
return
}
export const RequirePlatformAdmin = () => {
const { user } = useAuth()
if (!user) return
if (user.role !== 'platform_admin') return
return
}
export const RequireStaff = () => {
const { user } = useAuth()
if (!user) return
if (user.role === 'platform_admin') return
return
}
export const RequireSupervisor = () => {
const { user } = useAuth()
if (!user) return
if (user.role !== 'admin' && user.role !== 'supervisor') return
return
}
export const RequireTenantAdmin = () => {
const { user } = useAuth()
if (!user) return
if (user.role !== 'admin') return
return
}
export const RequirePermission = ({ anyOf }: { anyOf: string[] }) => {
const { user, permissions, permissionsLoaded } = useAuth()
if (!user) return
if (!permissionsLoaded) {
return
}
if (!anyOf.some(code => permissions.has(code))) {
return
}
return
}
export default RequireAuth