fix: improve admin machine details and role gating

This commit is contained in:
Esdras Renan 2025-10-13 13:32:50 -03:00
parent 076c0df7f9
commit 42611df0f5
6 changed files with 311 additions and 162 deletions

View file

@ -118,6 +118,15 @@ export function AppSidebar({ ...props }: React.ComponentProps<typeof Sidebar>) {
const pathname = usePathname()
const { session, isLoading, isAdmin, isStaff } = useAuth()
const [isHydrated, setIsHydrated] = React.useState(false)
const canAccess = React.useCallback(
(requiredRole?: NavRoleRequirement) => {
if (!requiredRole) return true
if (requiredRole === "admin") return isAdmin
if (requiredRole === "staff") return isStaff
return false
},
[isAdmin, isStaff]
)
const initialExpanded = React.useMemo(() => {
const open = new Set<string>()
navigation.navMain.forEach((group) => {
@ -160,13 +169,6 @@ export function AppSidebar({ ...props }: React.ComponentProps<typeof Sidebar>) {
return pathname === url || pathname.startsWith(`${url}/`)
}
function canAccess(requiredRole?: NavRoleRequirement) {
if (!requiredRole) return true
if (requiredRole === "admin") return isAdmin
if (requiredRole === "staff") return isStaff
return false
}
const toggleExpanded = React.useCallback((title: string) => {
setExpanded((prev) => {
const next = new Set(prev)