import React, { useState } from 'react'; import { CheckCircle, XCircle, AlertCircle } from 'lucide-react'; import { useToast } from '../contexts/ToastContext'; const API_BASE = process.env.REACT_APP_API_BASE || 'http://localhost:3001/api'; export default function QuickCVELookup() { const [query, setQuery] = useState(''); const [result, setResult] = useState(null); const [loading, setLoading] = useState(false); const toast = useToast(); const handleLookup = async () => { const trimmed = query.trim(); if (!trimmed) return; setLoading(true); try { const response = await fetch(`${API_BASE}/cves/check/${encodeURIComponent(trimmed)}`, { credentials: 'include' }); if (!response.ok) throw new Error('Failed to check CVE'); const data = await response.json(); setResult(data); } catch (err) { toast.error(err.message); setResult({ error: err.message }); } finally { setLoading(false); } }; return (
Error
{result.error}
✓ CVE Addressed ({result.vendors.length} vendor{result.vendors.length > 1 ? 's' : ''})
{vendorInfo.vendor}
Severity: {vendorInfo.severity}
Status: {vendorInfo.status}
Documents: {vendorInfo.total_documents} attached
Not Found
This CVE has not been addressed yet. No entry exists in the database.