24 lines
1.0 KiB
TypeScript
24 lines
1.0 KiB
TypeScript
import { getServerSession } from 'next-auth'
|
|
import { notFound, redirect } from 'next/navigation'
|
|
import { authOptions } from '@/lib/auth'
|
|
import { assertDetailGeneratorAccess, DetailGeneratorError } from '@/lib/detail-generator/access'
|
|
import MaterialLibraryAccessShell from '@/components/material-library/MaterialLibraryAccessShell'
|
|
import DetailGeneratorWorkspace from '@/components/detail-generator/DetailGeneratorWorkspace'
|
|
|
|
export const dynamic = 'force-dynamic'
|
|
export const metadata = { title: '详情页生成 | 品牌中心' }
|
|
|
|
export default async function DetailGeneratorPage() {
|
|
const session = await getServerSession(authOptions)
|
|
if (!session?.user?.id) redirect('/login')
|
|
try { await assertDetailGeneratorAccess(session) } catch (error) {
|
|
if (error instanceof DetailGeneratorError && error.status === 403) notFound()
|
|
throw error
|
|
}
|
|
return (
|
|
<MaterialLibraryAccessShell canAccessBrandCenter={session.user.canAccessBrandCenter === true}>
|
|
<DetailGeneratorWorkspace />
|
|
</MaterialLibraryAccessShell>
|
|
)
|
|
}
|