import { type FormEvent, useState } from 'react' import { FormModal } from './FormModal' import type { Pokemon, CreatePokemonInput, UpdatePokemonInput } from '../../types' interface PokemonFormModalProps { pokemon?: Pokemon onSubmit: (data: CreatePokemonInput | UpdatePokemonInput) => void onClose: () => void isSubmitting?: boolean } export function PokemonFormModal({ pokemon, onSubmit, onClose, isSubmitting }: PokemonFormModalProps) { const [pokeapiId, setPokeapiId] = useState(String(pokemon?.pokeapiId ?? '')) const [nationalDex, setNationalDex] = useState(String(pokemon?.nationalDex ?? '')) const [name, setName] = useState(pokemon?.name ?? '') const [types, setTypes] = useState(pokemon?.types.join(', ') ?? '') const [spriteUrl, setSpriteUrl] = useState(pokemon?.spriteUrl ?? '') const handleSubmit = (e: FormEvent) => { e.preventDefault() const typesList = types .split(',') .map((t) => t.trim()) .filter(Boolean) onSubmit({ pokeapiId: Number(pokeapiId), nationalDex: Number(nationalDex), name, types: typesList, spriteUrl: spriteUrl || null, }) } return (
setPokeapiId(e.target.value)} className="w-full px-3 py-2 border rounded-md dark:bg-gray-700 dark:border-gray-600" />
setNationalDex(e.target.value)} className="w-full px-3 py-2 border rounded-md dark:bg-gray-700 dark:border-gray-600" />
setName(e.target.value)} className="w-full px-3 py-2 border rounded-md dark:bg-gray-700 dark:border-gray-600" />
setTypes(e.target.value)} placeholder="Fire, Flying" className="w-full px-3 py-2 border rounded-md dark:bg-gray-700 dark:border-gray-600" />
setSpriteUrl(e.target.value)} placeholder="Optional" className="w-full px-3 py-2 border rounded-md dark:bg-gray-700 dark:border-gray-600" />
) }