import { useCallback, useEffect, useState } from 'react' import { useInitiativeOperations } from '../../context/InitiativeOperationsContext.jsx' import { listInitiativeJourney } from '../../api/journey.js' import { DecisionsSection } from '../../components/DecisionsSection.jsx' import { ReviewsSection } from '../../components/ReviewsSection.jsx' import { RecurringSection } from '../../components/RecurringSection.jsx' import { EvidenceSection } from '../../components/EvidenceSection.jsx' import { JourneyTimeline } from '../../components/JourneyTimeline.jsx' export function InitiativeJourneyPage() { const ops = useInitiativeOperations() const { id, capabilities, error, formBusy, roadmapItems } = ops const [journeyEvents, setJourneyEvents] = useState([]) const [journeyLoading, setJourneyLoading] = useState(true) const [journeyError, setJourneyError] = useState(null) const loadJourney = useCallback(async () => { if (!id) return setJourneyLoading(true) setJourneyError(null) try { const data = await listInitiativeJourney(id) setJourneyEvents(data.events || []) } catch (err) { setJourneyError(err.message) } finally { setJourneyLoading(false) } }, [id]) useEffect(() => { loadJourney() }, [loadJourney, ops.decisions, ops.reviews, ops.evidenceItems, ops.actions]) if (!capabilities.has('kairo.initiative.read')) { return null } return ( <> {error &&
{error}
}Chronologie aus Entscheidungen, Nachweisen, committeter Arbeit und Zielzuständen — Plan/Ist nachvollziehbar.
{journeyError &&{journeyError}
} {journeyLoading ? (Timeline wird geladen…
) : (