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"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from "@/components/ui/tooltip"; import { cn } from "@/lib/utils"; 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"); try { const profile_with_workspaces = await prisma.profile.findUnique({ where: { id: session.user.id, }, include: { profile_workspace: { include: { workspace: true, }, }, }, }); if (!profile_with_workspaces) throw new Error("No profile found."); const workspaces = profile_with_workspaces.profile_workspace.map((pw) => ({ ...pw.workspace, id: String(pw.workspace.id), })); console.log(workspaces); return workspaces; } catch (err) { console.error(err); } } export async function WorkspaceSelector({ workspaceID, }: { workspaceID?: string; }) { const workspaces = await fetchWorkspaces(); if (!workspaces) { return (
{" "} {/* Adjusted for center alignment */}
); } return (
{" "} {/* Adjusted for center alignment */}
{workspaces?.map((workspace) => ( {workspace.name.toUpperCase().slice(0, 2)} {workspace.name} ))}
); }