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 { CreateWorkspace } from "@/components/create-workspace"; async function getSession(supabase: any) { const { data: { session }, } = await supabase.auth.getSession(); return session; } async function fetchWorkspaces() { const supabase = createServerComponentClient({ cookies }); const session = await getSession(supabase); if (!session) redirect("/auth"); const workspaces = await prisma.profile.findUnique({ where: { id: session.user.id, }, include: { profile_workspace: { include: { workspace: true, }, }, }, }); if (!workspaces) return undefined; const res = workspaces.profile_workspace.map((relation) => ({ ...relation.workspace, id: String(relation.workspace.id), })); return res; } export async function WorkspacesSidebar() { const workspaces = await fetchWorkspaces(); return (

Workspaces Sidebar

{workspaces ? ( workspaces.map((workspace) => (
{workspace.name}
)) ) : (

No workspaces

)}
); }