import { useState, useEffect } from 'react' import { useNavigate } from 'react-router-dom' import { ClipboardList, ArrowRight, Clock } from 'lucide-react' import { sessionsApi } from '@/api/sessions' import type { Session } from '@/types/session' import { getTreeNavigatePath } from '@/lib/routing' import { cn } from '@/lib/utils' export function PreparedSessions() { const navigate = useNavigate() const [sessions, setSessions] = useState([]) const [isLoading, setIsLoading] = useState(true) useEffect(() => { sessionsApi.list({ status: 'prepared', size: 10 }) .then(setSessions) .catch(() => setSessions([])) .finally(() => setIsLoading(false)) }, []) if (isLoading || sessions.length === 0) return null const handleStart = (session: Session) => { const treeType = (session.tree_snapshot as unknown as Record)?.tree_type as string | undefined navigate(getTreeNavigatePath(session.tree_id, treeType), { state: { sessionId: session.id }, }) } return (

Prepared for You

{sessions.length}
{sessions.map(session => { const snapshot = session.tree_snapshot as unknown as Record const flowName = (snapshot?.name as string) || 'Unknown Flow' const filledVars = Object.values(session.session_variables || {}).filter(v => v?.trim()).length const treeType = snapshot?.tree_type as string | undefined return ( ) })}
) }