'use client'; import Button from '@/components/ui/Button'; import Input from '@/components/ui/Input'; import { useEffectiveDriverId } from "@/lib/hooks/useEffectiveDriverId"; import { useCreateTeam } from "@/lib/hooks/team"; import { useRouter } from 'next/navigation'; import { useState } from 'react'; interface CreateTeamFormProps { onCancel?: () => void; onSuccess?: (teamId: string) => void; } export default function CreateTeamForm({ onCancel, onSuccess }: CreateTeamFormProps) { const router = useRouter(); const createTeamMutation = useCreateTeam(); const [formData, setFormData] = useState({ name: '', tag: '', description: '', }); const [errors, setErrors] = useState>({}); const currentDriverId = useEffectiveDriverId(); const validateForm = () => { const newErrors: Record = {}; if (!formData.name.trim()) { newErrors.name = 'Team name is required'; } else if (formData.name.length < 3) { newErrors.name = 'Team name must be at least 3 characters'; } if (!formData.tag.trim()) { newErrors.tag = 'Team tag is required'; } else if (formData.tag.length > 4) { newErrors.tag = 'Team tag must be 4 characters or less'; } if (!formData.description.trim()) { newErrors.description = 'Description is required'; } else if (formData.description.length < 10) { newErrors.description = 'Description must be at least 10 characters'; } setErrors(newErrors); return Object.keys(newErrors).length === 0; }; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); if (!validateForm()) { return; } createTeamMutation.mutate( { name: formData.name, tag: formData.tag.toUpperCase(), description: formData.description, }, { onSuccess: (result) => { const teamId = result.id; if (onSuccess) { onSuccess(teamId); } else { router.push(`/teams/${teamId}`); } }, onError: (error) => { alert(error instanceof Error ? error.message : 'Failed to create team'); }, } ); }; return (
setFormData({ ...formData, name: e.target.value })} placeholder="Enter team name..." disabled={createTeamMutation.isPending} /> {errors.name && (

{errors.name}

)}
setFormData({ ...formData, tag: e.target.value.toUpperCase() })} placeholder="e.g., APEX" maxLength={4} disabled={createTeamMutation.isPending} />

Max 4 characters

{errors.tag && (

{errors.tag}

)}