import { Sidebar } from "@/components/sidebar"; import { createServerComponentClient } from "@supabase/auth-helpers-nextjs"; import { Database } from "@/types/supabase"; import { cookies } from "next/headers"; import { redirect } from "next/navigation"; import { prisma } from "@/lib/prisma"; async function getSession(supabase: any) { const { data: { session }, } = await supabase.auth.getSession(); return session; } async function getWorkspace(workspaceID: string) { const supabase = createServerComponentClient({ cookies }); const session = await getSession(supabase); if (!session) redirect("/auth"); try { const workspace = await prisma.workspace.findUnique({ where: { id: BigInt(workspaceID), }, }); if (!workspace) return undefined; const res = { ...workspace, id: String(workspace.id), }; return res; } catch (err) { console.error(err); return; } } export default async function Workspace({ params: { workspaceID }, }: { params: { workspaceID: string }; }) { const workspace = await getWorkspace(workspaceID); const supabase = createServerComponentClient({ cookies }); const session = await getSession(supabase); if (!workspace) return (

Workspace not found.

); if ( !(await prisma.profile_workspace.findFirst({ where: { profile_id: session.user.id, workspace_id: BigInt(workspaceID), }, })) ) { return (

You are not a member of this workspace.

); } return (

Workspace: {workspaceID}

); }