import { useState } from 'react' import { CheckCircle2, AlertTriangle, BarChart3, CheckCheck } from 'lucide-react' import { cn } from '@/lib/utils' import { NodeCard } from './NodeCard' import { SourcePanel } from './SourcePanel' import type { KBImport, KBNodeEditRequest, KBCommitRequest } from '@/types/kbAccelerator' interface ReviewScreenProps { kbImport: KBImport onEditNode: (nodeId: string, data: KBNodeEditRequest) => Promise onApproveAll: () => Promise onCommit: (data?: KBCommitRequest) => Promise onDiscard: () => Promise loading: boolean } export function ReviewScreen({ kbImport, onEditNode, onApproveAll, onCommit, onDiscard, loading }: ReviewScreenProps) { const [highlightExcerpt, setHighlightExcerpt] = useState(null) const nodes = kbImport.nodes const approvedCount = nodes.filter(n => n.user_approved).length const lowConfidenceCount = nodes.filter(n => n.confidence_score < 0.65).length const avgConfidence = kbImport.confidence_avg ?? 0 const title = (kbImport.source_metadata as Record | null) ?._conversion as Record | undefined const flowTitle = (title?.title as string) ?? 'Untitled Flow' const flowDescription = (title?.description as string) ?? '' return (
{/* Header */}

{flowTitle}

{flowDescription && (

{flowDescription}

)}
Avg confidence: {Math.round(avgConfidence * 100)}%
{approvedCount}/{nodes.length} approved
{lowConfidenceCount > 0 && (
{lowConfidenceCount} low confidence
)} {approvedCount < nodes.length && ( )}
{/* Two-panel layout */}
{/* Source panel */}
{/* Nodes panel */}
Generated Flow {kbImport.target_type === 'troubleshooting' ? 'Troubleshooting' : 'Project'}
{nodes.map(node => ( ))} {nodes.length === 0 && (

No nodes generated. Try converting again.

)}
{/* Actions */}
) }