Kairo-Jinkendo/frontend/src/pages/initiative/InitiativeInboxPage.jsx

57 lines
1.5 KiB
React
Raw Normal View History

import { useInitiativeOperations } from '../../context/InitiativeOperationsContext.jsx'
import { BacklogSection } from '../../components/BacklogSection.jsx'
import { LoadingState } from '../../components/LoadingState.jsx'
export function InitiativeInboxPage() {
const {
initiative,
initiativeId,
backlogItems,
roadmapItems,
workCycles,
activeWorkCycle,
capabilities,
formBusy,
error,
loading,
handleCreateBacklog,
handleUpdateBacklog,
handleReorderBacklog,
handleConvertBacklog,
handleBulkConvertBacklog,
handleDeleteBacklog,
} = useInitiativeOperations()
if (!capabilities.has('kairo.initiative.read')) {
return null
}
if (loading && initiative === null) {
return <LoadingState message="Lade Eingang …" />
}
const isProductArchetype = initiative?.archetype_key === 'initiative.product'
return (
<>
{error && <p className="error">{error}</p>}
<BacklogSection
items={backlogItems}
initiativeId={initiativeId}
roadmapItems={roadmapItems}
workCycles={workCycles}
activeWorkCycle={activeWorkCycle}
sprintPlanningEnabled={isProductArchetype}
canManage={capabilities.has('kairo.backlog.manage')}
onCreate={handleCreateBacklog}
onUpdate={handleUpdateBacklog}
onReorder={handleReorderBacklog}
onConvert={handleConvertBacklog}
onBulkConvert={handleBulkConvertBacklog}
onDelete={handleDeleteBacklog}
busy={formBusy}
/>
</>
)
}