import { useState } from 'react' import { RequireInitiativeScope } from '../../components/RequireInitiativeScope.jsx' import { ScopedInitiativeProvider } from '../../layout/ScopedInitiativeProvider.jsx' import { StatusBadge } from '../../components/StatusBadge.jsx' import { LoadingState } from '../../components/LoadingState.jsx' import { Modal } from '../../components/Modal.jsx' import { InitiativeForm } from '../../components/InitiativeForm.jsx' import { useInitiativeOperations } from '../../context/InitiativeOperationsContext.jsx' import { useProgramScope } from '../../context/ProgramScopeContext.jsx' import { initiativeArchetypeLabel } from '../../constants/initiativeArchetypes.js' function PlanProfileInner() { const ops = useInitiativeOperations() const { refreshInitiativeMeta } = useProgramScope() const { initiative, loading, error, capabilities, formBusy } = ops const [editing, setEditing] = useState(false) const canManage = capabilities.has('kairo.initiative.manage') if (loading) { return } if (!initiative) { return

Vorhaben nicht gefunden.

} async function handleSave(payload) { const ok = await ops.handleUpdateInitiative(payload) if (ok) { refreshInitiativeMeta() setEditing(false) } } return ( <>

{initiative.title}

{canManage && ( )}
{error &&

{error}

}

Archetyp

{initiativeArchetypeLabel(initiative.archetype_key)}

{initiative.goal ? (

Kurzbeschreibung (Ziel)

{initiative.goal}

) : (

Noch keine Kurzbeschreibung hinterlegt.

)} {initiative.vision && (

Vision

{initiative.vision}

)} {initiative.target_state_summary && (

Zielzustand

{initiative.target_state_summary}

)}

Dynamische Zusatzfelder (EFS) folgen in AP1.10c.

setEditing(false)} size="lg"> setEditing(false)} busy={formBusy} /> ) } export function PlanProfilePage() { return ( ) }