'use client' import { useState } from 'react' import Link from 'next/link' import { useRouter } from 'next/navigation' import { trpc } from '@/lib/trpc/client' import { Button } from '@/components/ui/button' import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from '@/components/ui/card' import { Input } from '@/components/ui/input' import { Label } from '@/components/ui/label' import { Textarea } from '@/components/ui/textarea' import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from '@/components/ui/select' import { Switch } from '@/components/ui/switch' import { toast } from 'sonner' import { ArrowLeft, Save, Loader2 } from 'lucide-react' export default function CreateAwardPage() { const router = useRouter() const [name, setName] = useState('') const [description, setDescription] = useState('') const [criteriaText, setCriteriaText] = useState('') const [scoringMode, setScoringMode] = useState< 'PICK_WINNER' | 'RANKED' | 'SCORED' >('PICK_WINNER') const [useAiEligibility, setUseAiEligibility] = useState(true) const [maxRankedPicks, setMaxRankedPicks] = useState('3') const [programId, setProgramId] = useState('') const { data: programs } = trpc.program.list.useQuery() const createAward = trpc.specialAward.create.useMutation() const handleSubmit = async () => { if (!name.trim() || !programId) return try { const award = await createAward.mutateAsync({ programId, name: name.trim(), description: description.trim() || undefined, criteriaText: criteriaText.trim() || undefined, useAiEligibility, scoringMode, maxRankedPicks: scoringMode === 'RANKED' ? parseInt(maxRankedPicks) : undefined, }) toast.success('Award created') router.push(`/admin/awards/${award.id}`) } catch (error) { toast.error( error instanceof Error ? error.message : 'Failed to create award' ) } } return (

Create Special Award

Define a new award with eligibility criteria and voting rules

Award Details Configure the award name, criteria, and scoring mode
setName(e.target.value)} placeholder="e.g., Mediterranean Entrepreneurship Award" />