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' 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}

} {initiative.goal ? (

Ziel

{initiative.goal}

) : (

Noch kein Ziel hinterlegt.

)}

Archetyp-Felder und dynamische Attribute folgen mit AP1.10 (Entity Field System).

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