import { Link } from 'react-router-dom' import { Clock, CheckCircle2, ArrowUpRight, AlertCircle, Pause, Route, MessageCircle } from 'lucide-react' import { cn } from '@/lib/utils' import type { AISessionSummary } from '@/types/ai-session' interface AISessionListItemProps { session: AISessionSummary } const STATUS_CONFIG = { active: { icon: Clock, color: 'text-primary', label: 'Active' }, paused: { icon: Pause, color: 'text-warning', label: 'Paused' }, resolved: { icon: CheckCircle2, color: 'text-success', label: 'Resolved' }, escalated: { icon: ArrowUpRight, color: 'text-warning', label: 'Escalated' }, abandoned: { icon: AlertCircle, color: 'text-text-muted', label: 'Abandoned' }, } as const export function AISessionListItem({ session }: AISessionListItemProps) { const config = STATUS_CONFIG[session.status as keyof typeof STATUS_CONFIG] ?? STATUS_CONFIG.active const StatusIcon = config.icon // Both chat and guided sessions now land on the unified /pilot surface. // session_type is preserved on the DB row for data compatibility but is // no longer used for frontend route selection (Phase 1 FlowPilot migration). const isChat = session.session_type === 'chat' const TypeIcon = isChat ? MessageCircle : Route const linkTo = `/pilot/${session.id}` const displayTitle = isChat ? (session.title || session.problem_summary || 'Untitled chat') : (session.problem_summary || 'Untitled session') return (
{displayTitle}