import { useEffect, useMemo } from 'react'
import { Link } from 'react-router-dom'
import { RequireInitiativeScope } from '../../components/RequireInitiativeScope.jsx'
import { InitiativeActionsHub } from '../../components/InitiativeActionsHub.jsx'
import { NextActionWidget } from '../../widgets/NextActionWidget.jsx'
import { LoadingState } from '../../components/LoadingState.jsx'
import { EmptyState } from '../../components/EmptyState.jsx'
import { useInitiativeOperations } from '../../context/InitiativeOperationsContext.jsx'
import { useProgramScope } from '../../context/ProgramScopeContext.jsx'
import { scopedPath } from '../../utils/routes.js'
function WorkSprintInner() {
const { initiativeId, hrefWithScope } = useProgramScope()
const ops = useInitiativeOperations()
const {
activeWorkCycle,
sprintActions,
projects,
roadmapItems,
capabilities,
hideDone,
setHideDone,
loading,
error,
formBusy,
showActionForm,
setShowActionForm,
editingActionId,
setEditingActionId,
actionContextById,
actors,
actorsLoading,
actorsError,
actorsUsedFallback,
reloadActors,
handleCreateAction,
handleUpdateAction,
handleQuickStatus,
handleCreateBlockerForAction,
handleMoveActionToSprint,
handleUnplanAction,
initiative,
operatingContext,
dataSlices,
uiFeatures,
steeringSnapshot,
steeringSnapshotLoading,
visibleActions,
reloadSlices,
} = ops
const supportsWorkCycles = dataSlices.includes('work_cycles')
const isContinuousProductMode = uiFeatures.continuousProductWorkMode && supportsWorkCycles
const loadSteeringSnapshot = uiFeatures.steeringSnapshotOnWorkSprint
useEffect(() => {
if (initiativeId && loadSteeringSnapshot && !steeringSnapshot && !steeringSnapshotLoading) {
reloadSlices(['steering_snapshot'])
}
}, [
initiativeId,
loadSteeringSnapshot,
steeringSnapshot,
steeringSnapshotLoading,
reloadSlices,
])
const defaultWorkCycleId = activeWorkCycle?.id || ''
const createAction = useMemo(
() => async (payload) => {
await handleCreateAction({
...payload,
work_cycle_id: payload.work_cycle_id || defaultWorkCycleId || undefined,
})
},
[handleCreateAction, defaultWorkCycleId],
)
if (loading) {
return
{error}
} {!activeWorkCycle && isProductArchetype && ( <>Kein aktiver Sprint — Kairo steuert nach{' '} {operatingContext?.method_key || 'continuous_product'} (wirkungsvollster Schritt). Sprint-Planung unter{' '} Plan → Sprint .
{activeWorkCycle.title} {activeWorkCycle.goal_description && ` — ${activeWorkCycle.goal_description}`} {' · '} Product Backlog triagierst du unter{' '} Plan → Eingang .