import { type FormEvent, useState } from 'react' import { FormModal } from './FormModal' import { PokemonSelector } from './PokemonSelector' import type { EvolutionAdmin, CreateEvolutionInput, UpdateEvolutionInput } from '../../types' interface EvolutionFormModalProps { evolution?: EvolutionAdmin onSubmit: (data: CreateEvolutionInput | UpdateEvolutionInput) => void onClose: () => void isSubmitting?: boolean onDelete?: () => void isDeleting?: boolean } const TRIGGER_OPTIONS = ['level-up', 'trade', 'use-item', 'shed', 'other'] export function EvolutionFormModal({ evolution, onSubmit, onClose, isSubmitting, onDelete, isDeleting, }: EvolutionFormModalProps) { const [fromPokemonId, setFromPokemonId] = useState( evolution?.fromPokemonId ?? null ) const [toPokemonId, setToPokemonId] = useState(evolution?.toPokemonId ?? null) const [trigger, setTrigger] = useState(evolution?.trigger ?? 'level-up') const [minLevel, setMinLevel] = useState(String(evolution?.minLevel ?? '')) const [item, setItem] = useState(evolution?.item ?? '') const [heldItem, setHeldItem] = useState(evolution?.heldItem ?? '') const [condition, setCondition] = useState(evolution?.condition ?? '') const [region, setRegion] = useState(evolution?.region ?? '') const handleSubmit = (e: FormEvent) => { e.preventDefault() if (!fromPokemonId || !toPokemonId) return onSubmit({ fromPokemonId, toPokemonId, trigger, minLevel: minLevel ? Number(minLevel) : null, item: item || null, heldItem: heldItem || null, condition: condition || null, region: region || null, }) } return (
setMinLevel(e.target.value)} placeholder="Optional" className="w-full px-3 py-2 border rounded-md bg-surface-2 border-border-default" />
setItem(e.target.value)} placeholder="e.g. thunder-stone" className="w-full px-3 py-2 border rounded-md bg-surface-2 border-border-default" />
setHeldItem(e.target.value)} placeholder="Optional" className="w-full px-3 py-2 border rounded-md bg-surface-2 border-border-default" />
setCondition(e.target.value)} placeholder="e.g. high-happiness, daytime" className="w-full px-3 py-2 border rounded-md bg-surface-2 border-border-default" />
setRegion(e.target.value)} placeholder="e.g. alola (blank = all regions)" className="w-full px-3 py-2 border rounded-md bg-surface-2 border-border-default" />
) }