import { auth } from "@/lib/auth"; import { prisma } from "@/lib/prisma"; import { notFound } from "next/navigation"; import { SpaceProvider } from "@/components/SpaceProvider"; import { SpaceNav } from "@/components/SpaceNav"; import { calculateAvailableCredits } from "@/lib/credits"; export default async function SpaceLayout({ children, params, }: { children: React.ReactNode; params: Promise<{ slug: string }>; }) { const { slug } = await params; const session = await auth(); const space = await prisma.space.findUnique({ where: { slug } }); if (!space) notFound(); let membership = null; if (session?.user?.id) { const member = await prisma.spaceMember.findUnique({ where: { userId_spaceId: { userId: session.user.id, spaceId: space.id } }, }); if (member) { const credits = calculateAvailableCredits( member.credits, member.lastCreditAt, space.creditsPerDay, space.maxCredits ); membership = { id: member.id, role: member.role, credits }; } } return (

{space.name}

{space.description && (

{space.description}

)}
{children}
); }