import { useState } from 'react'; import { X } from 'lucide-react'; import { Button, Input, Spinner } from '@/shared/components/ui'; import { api } from '@/shared/lib/api'; interface CreateCharacterModalProps { campaignId: string; onClose: () => void; onCreated: () => void; } export function CreateCharacterModal({ campaignId, onClose, onCreated }: CreateCharacterModalProps) { const [name, setName] = useState(''); const [type, setType] = useState<'PC' | 'NPC'>('PC'); const [level, setLevel] = useState(1); const [hpMax, setHpMax] = useState(20); const [isSubmitting, setIsSubmitting] = useState(false); const [error, setError] = useState(''); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); if (!name.trim()) { setError('Name ist erforderlich'); return; } setIsSubmitting(true); setError(''); try { await api.createCharacter(campaignId, { name: name.trim(), type, level, hpCurrent: hpMax, hpMax, }); onCreated(); onClose(); } catch (err) { setError('Fehler beim Erstellen des Charakters'); console.error('Failed to create character:', err); } finally { setIsSubmitting(false); } }; return (