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>
)
}