import { Button } from '@/components/ui/button'; import { CheckCircle2, AlertCircle, RefreshCw } from 'lucide-react'; import { cn } from '@/lib/utils'; import type { CliStatus } from '../shared/types'; interface CliStatusCardProps { title: string; description: string; status: CliStatus | null; isChecking: boolean; onRefresh: () => void; refreshTestId: string; icon: React.ComponentType<{ className?: string }>; fallbackRecommendation: string; } export function CliStatusCard({ title, description, status, isChecking, onRefresh, refreshTestId, icon: Icon, fallbackRecommendation, }: CliStatusCardProps) { if (!status) return null; return (

{title}

{description}

{status.success && status.status === 'installed' ? (

{title} Installed

{status.method && (

Method: {status.method}

)} {status.version && (

Version: {status.version}

)} {status.path && (

Path: {status.path}

)}
{status.recommendation && (

{status.recommendation}

)}
) : (

{title} Not Detected

{status.recommendation || fallbackRecommendation}

{status.installCommands && (

Installation Commands:

{status.installCommands.npm && (

npm

{status.installCommands.npm}
)} {status.installCommands.macos && (

macOS/Linux

{status.installCommands.macos}
)} {status.installCommands.windows && (

Windows (PowerShell)

{status.installCommands.windows}
)}
)}
)}
); }