import { FeatureList } from "@/components/feature-list"; import { TaskList } from "@/components/task-list"; import { createServerComponentClient } from "@supabase/auth-helpers-nextjs"; import { Database } from "@/types/supabase"; import { cookies } from "next/headers"; import { redirect } from "next/navigation"; import Link from "next/link"; import { prisma } from "@/lib/prisma"; import { CreateFeature } from "@/components/create-feature"; import { NextResponse } from "next/server"; async function getSession(supabase: any) { const { data: { session }, } = await supabase.auth.getSession(); return session; } async function getProject(projectID: string) { const supabase = createServerComponentClient({ cookies }); const session = await getSession(supabase); if (!session) redirect("/auth"); try { const project = await prisma.project.findUnique({ where: { id: BigInt(projectID), }, }); if (!project) return undefined; const res = { ...project, id: String(project.id), workspace_id: String(project.workspace_id), }; return res; } catch (err) { console.error(err); return; } } export default async function Project({ params: { projectID, workspaceID }, }: { params: { projectID: string; workspaceID: string }; }) { const project = await getProject(projectID); const supabase = createServerComponentClient({ cookies }); const session = await getSession(supabase); if (!project) return (

Project not found.

); if ( !(await prisma.profile_project.findFirst({ where: { profile_id: session.user.id, project_id: BigInt(projectID), }, })) ) { return (

You are not a member of this project.

); } return (

Project: {projectID}

Workspace: {workspaceID}

Project Name: {project?.name}

Project Description: {project?.description}

Tech Stack: {project?.stack.join(", ")}

); }