'use client' import Link from 'next/link' import { trpc } from '@/lib/trpc/client' import { Button } from '@/components/ui/button' import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from '@/components/ui/card' import { Badge } from '@/components/ui/badge' import { Skeleton } from '@/components/ui/skeleton' import { Plus, Trophy, Users, CheckCircle2 } from 'lucide-react' const STATUS_COLORS: Record = { DRAFT: 'secondary', NOMINATIONS_OPEN: 'default', VOTING_OPEN: 'default', CLOSED: 'outline', ARCHIVED: 'secondary', } const SCORING_LABELS: Record = { PICK_WINNER: 'Pick Winner', RANKED: 'Ranked', SCORED: 'Scored', } export default function AwardsListPage() { const { data: awards, isLoading } = trpc.specialAward.list.useQuery({}) if (isLoading) { return (
{[...Array(3)].map((_, i) => ( ))}
) } return (
{/* Header */}

Special Awards

Manage named awards with eligibility criteria and jury voting

{/* Awards Grid */} {awards && awards.length > 0 ? (
{awards.map((award) => (
{award.name} {award.status.replace('_', ' ')}
{award.description && ( {award.description} )}
{award._count.eligibilities} eligible
{award._count.jurors} jurors
{SCORING_LABELS[award.scoringMode] || award.scoringMode}
{award.winnerProject && (

Winner:{' '} {award.winnerProject.title}

)}
))}
) : (

No awards yet

Create special awards for outstanding projects

)}
) }