import { useNavigate } from 'react-router-dom' import { useState } from 'react' import { useCapabilities } from '../hooks/useCapabilities.js' import { getWidgetsForArea } from '../registry/widgetRegistry.js' import { useSession } from '../context/SessionContext.jsx' import { InitiativeForm } from '../components/InitiativeForm.jsx' import { createInitiative } from '../api/initiatives.js' import { Link } from 'react-router-dom' export function WorkspacePage() { const navigate = useNavigate() const { context } = useSession() const { capabilities, hasCapability } = useCapabilities() const widgets = getWidgetsForArea('workspace', capabilities) const [showForm, setShowForm] = useState(false) const [formBusy, setFormBusy] = useState(false) const [formError, setFormError] = useState(null) async function handleCreateInitiative(payload) { setFormBusy(true) setFormError(null) try { await createInitiative({ ...payload, owner_actor_id: context?.actor?.id, }) setShowForm(false) navigate('/initiatives') } catch (err) { setFormError(err.message) } finally { setFormBusy(false) } } return (

Workspace

Was ist dein nächster sinnvoller Schritt?

{hasCapability('kairo.initiative.manage') && ( )}
{showForm && (

Neues Vorhaben

{formError &&

{formError}

} setShowForm(false)} busy={formBusy} submitLabel="Vorhaben anlegen" />
)}
{widgets.map((widget) => { const Component = widget.component return })}
{hasCapability('kairo.initiative.read') && (

Zur Vorhabenliste →

)}
) }