feat: add award-master route group layout and nav component
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
24
src/app/(award-master)/layout.tsx
Normal file
24
src/app/(award-master)/layout.tsx
Normal file
@@ -0,0 +1,24 @@
|
||||
import { requireRole } from '@/lib/auth-redirect'
|
||||
import { AwardMasterNav } from '@/components/layouts/award-master-nav'
|
||||
|
||||
export const dynamic = 'force-dynamic'
|
||||
|
||||
export default async function AwardMasterLayout({
|
||||
children,
|
||||
}: {
|
||||
children: React.ReactNode
|
||||
}) {
|
||||
const session = await requireRole('AWARD_MASTER', 'PROGRAM_ADMIN', 'SUPER_ADMIN')
|
||||
|
||||
return (
|
||||
<div className="min-h-screen bg-background">
|
||||
<AwardMasterNav
|
||||
user={{
|
||||
name: session.user.name,
|
||||
email: session.user.email,
|
||||
}}
|
||||
/>
|
||||
<main className="container-app py-6 lg:py-8">{children}</main>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
23
src/components/layouts/award-master-nav.tsx
Normal file
23
src/components/layouts/award-master-nav.tsx
Normal file
@@ -0,0 +1,23 @@
|
||||
'use client'
|
||||
|
||||
import { Home } from 'lucide-react'
|
||||
import { RoleNav, type NavItem, type RoleNavUser } from '@/components/layouts/role-nav'
|
||||
|
||||
interface AwardMasterNavProps {
|
||||
user: RoleNavUser
|
||||
}
|
||||
|
||||
export function AwardMasterNav({ user }: AwardMasterNavProps) {
|
||||
const navigation: NavItem[] = [
|
||||
{ name: 'Dashboard', href: '/award-master', icon: Home },
|
||||
]
|
||||
|
||||
return (
|
||||
<RoleNav
|
||||
navigation={navigation}
|
||||
roleName="Award Master"
|
||||
user={user}
|
||||
basePath="/award-master"
|
||||
/>
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user