import { useEffect, useState } from 'react' import { INITIATIVE_STATUSES, PRIORITIES } from '../constants/status.js' import { INITIATIVE_STATUS_LABELS, PRIORITY_LABELS } from '../constants/status.js' import { INITIATIVE_ARCHETYPE_LABELS } from '../constants/initiativeArchetypes.js' import { listEntityArchetypes } from '../api/entityArchetypes.js' export function InitiativeForm({ initial = {}, onSubmit, onCancel, busy = false, submitLabel = 'Speichern', }) { const [archetypes, setArchetypes] = useState(null) useEffect(() => { let cancelled = false listEntityArchetypes('initiative') .then((items) => { if (!cancelled) setArchetypes(items) }) .catch(() => { if (!cancelled) { setArchetypes( Object.entries(INITIATIVE_ARCHETYPE_LABELS).map(([key, label]) => ({ key, label, })), ) } }) return () => { cancelled = true } }, []) async function handleSubmit(e) { e.preventDefault() const form = e.target await onSubmit({ title: form.title.value.trim(), archetype_key: form.archetype_key.value, goal: form.goal.value, vision: form.vision.value, target_state_summary: form.target_state_summary.value, status: form.status.value, priority: form.priority.value, }) } return (
) }