import { ChevronRight } from 'lucide-react' import Link from 'next/link' import { notFound, redirect } from 'next/navigation' import { Fragment } from 'react' import { canAccess, getAdminContext, PERMS } from '@/lib/permissions' import { prisma } from '@/lib/prisma' import { loadCatalogItemsData } from '@/lib/services/catalog-items-loader' import { getAncestors } from '@/lib/services/catalog-tree' import { CatalogDetailTabs } from './catalog-detail-tabs' export default async function CatalogEditPage({ params, }: { params: Promise<{ locale: string; id: string }> }) { const { id } = await params const { session, permissions } = await getAdminContext() if (!canAccess(permissions, PERMS.CATALOG_VIEW, session.user.rank)) { redirect('/admin') } const pageId = parseInt(id, 10) if (Number.isNaN(pageId)) notFound() const catalogPage = await prisma.catalogPage.findUnique({ where: { id: pageId }, }) if (!catalogPage) notFound() const [children, itemsData, ancestors] = await Promise.all([ prisma.catalogPage.findMany({ where: { parentId: pageId }, orderBy: { orderNum: 'asc' }, select: { id: true, caption: true, enabled: true }, }), loadCatalogItemsData(pageId), getAncestors(catalogPage.parentId), ]) const { items: catalogItems, baseItems, catalogNameMap, furniDataIdList, furniDescriptionMap, furniRevisionMap, interactionTypes, allPages, } = itemsData const canEdit = canAccess(permissions, PERMS.CATALOG_EDIT, session.user.rank) return (
{/* Breadcrumb */} {/* Title */}

{catalogPage.caption} #{catalogPage.id}

Layout: {catalogPage.pageLayout} · {catalogItems.length} items

{/* Tabs */}
) }