import { Suspense } from 'react' import Link from 'next/link' import { api } from '@/lib/trpc/server' import { Button } from '@/components/ui/button' import { Card, CardContent, } from '@/components/ui/card' import { Badge } from '@/components/ui/badge' import { Skeleton } from '@/components/ui/skeleton' import { Plus, Pencil, ExternalLink, Building2, Eye, EyeOff, Globe, } from 'lucide-react' const visibilityIcons = { ADMIN_ONLY: EyeOff, JURY_VISIBLE: Eye, PUBLIC: Globe, } const partnerTypeColors = { SPONSOR: 'bg-yellow-100 text-yellow-800', PARTNER: 'bg-blue-100 text-blue-800', SUPPORTER: 'bg-green-100 text-green-800', MEDIA: 'bg-purple-100 text-purple-800', OTHER: 'bg-gray-100 text-gray-800', } async function PartnersList() { const caller = await api() const { data: partners } = await caller.partner.list({ perPage: 50, }) if (partners.length === 0) { return (

No partners yet

Start by adding your first partner organization

) } return (
{partners.map((partner) => { const VisibilityIcon = visibilityIcons[partner.visibility] return (

{partner.name}

{!partner.isActive && ( Inactive )}
{partner.partnerType}
{partner.description && (

{partner.description}

)}
{partner.website && ( )}
) })}
) } function LoadingSkeleton() { return (
{[1, 2, 3, 4, 5, 6].map((i) => (
))}
) } export default function PartnersPage() { return (

Partners

Manage partner and sponsor organizations

}>
) }