'use client' import { useState } from 'react' import { useRouter } from 'next/navigation' import Link from 'next/link' import { trpc } from '@/lib/trpc/client' import { Button } from '@/components/ui/button' import { Input } from '@/components/ui/input' import { Label } from '@/components/ui/label' import { Textarea } from '@/components/ui/textarea' import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from '@/components/ui/card' import { ArrowLeft, Loader2 } from 'lucide-react' import { toast } from 'sonner' export default function NewProgramPage() { const router = useRouter() const [isSubmitting, setIsSubmitting] = useState(false) const createProgram = trpc.program.create.useMutation({ onSuccess: () => { toast.success('Program created successfully') router.push('/admin/programs') }, onError: (error) => { toast.error(error.message || 'Failed to create program') setIsSubmitting(false) }, }) const handleSubmit = async (e: React.FormEvent) => { e.preventDefault() setIsSubmitting(true) const formData = new FormData(e.currentTarget) const name = formData.get('name') as string const year = parseInt(formData.get('year') as string, 10) const description = formData.get('description') as string createProgram.mutate({ name, year, description: description || undefined, }) } const currentYear = new Date().getFullYear() return (

Create Program

Set up a new ocean protection program

Program Details Basic information about the program