'use client' import { useState } from 'react' import { motion, AnimatePresence } from 'motion/react' import { UseFormReturn, useFieldArray } from 'react-hook-form' import { Plus, Trash2, Users } from 'lucide-react' import { WizardStepContent } from '@/components/forms/form-wizard' import { Input } from '@/components/ui/input' import { Label } from '@/components/ui/label' import { Button } from '@/components/ui/button' import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from '@/components/ui/select' import type { ApplicationFormData } from '@/server/routers/application' import { TeamMemberRole } from '@prisma/client' const roleOptions: { value: TeamMemberRole; label: string }[] = [ { value: 'MEMBER', label: 'Team Member' }, { value: 'ADVISOR', label: 'Advisor' }, ] interface StepTeamProps { form: UseFormReturn } export function StepTeam({ form }: StepTeamProps) { const { control, register, formState: { errors } } = form const { fields, append, remove } = useFieldArray({ control, name: 'teamMembers', }) const addMember = () => { append({ name: '', email: '', role: 'MEMBER', title: '' }) } return ( {fields.length === 0 ? (

No team members added yet.

You can add team members here, or skip this step if you're applying solo.

) : (
{fields.map((field, index) => (

Team Member {index + 1}

{/* Name */}
{errors.teamMembers?.[index]?.name && (

{errors.teamMembers[index]?.name?.message}

)}
{/* Email */}
{errors.teamMembers?.[index]?.email && (

{errors.teamMembers[index]?.email?.message}

)}
{/* Role */}
{/* Title/Position */}
))}
)}
) }