gongxiangp2/components/material-library/MaterialLibraryAccessShell.tsx

45 lines
1.8 KiB
TypeScript

'use client'
import { LibraryBig, LogOut } from 'lucide-react'
import { signOut } from 'next-auth/react'
import type { ReactNode } from 'react'
import DepartmentShell from '@/components/department-dashboard/DepartmentShell'
export default function MaterialLibraryAccessShell({
canAccessBrandCenter,
children,
}: {
canAccessBrandCenter: boolean
children: ReactNode
}) {
if (canAccessBrandCenter) {
return <DepartmentShell>{children}</DepartmentShell>
}
return (
<div className="min-h-screen bg-[#f2f4f7] text-[#101828]">
<header className="sticky top-0 z-40 border-b border-[#e2e8f0] bg-white" aria-label="素材资产库顶栏">
<div className="mx-auto flex h-16 max-w-7xl items-center justify-between gap-4 px-4 sm:px-6">
<div className="flex min-w-0 items-center gap-3">
<span className="flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-[#edf5ff] text-[#176fc1]">
<LibraryBig className="h-5 w-5" aria-hidden="true" />
</span>
<span className="truncate text-base font-bold tracking-[-0.02em]">素材资产库</span>
</div>
<button
type="button"
aria-label="退出登录"
onClick={() => signOut({ callbackUrl: '/login' })}
className="inline-flex min-h-10 shrink-0 items-center gap-2 rounded-lg px-3 text-sm font-semibold text-[#4f6077] transition-colors hover:bg-[#eef2f6] hover:text-[#101828] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[#5a9ce6] focus-visible:ring-offset-2"
>
<LogOut className="h-4 w-4" aria-hidden="true" />
<span className="hidden sm:inline">退出登录</span>
<span className="sr-only sm:hidden">退出登录</span>
</button>
</div>
</header>
{children}
</div>
)
}