import { useState } from 'react'; import { useMutation } from '@tanstack/react-query'; import { analysisApi } from '../api/client'; import { Search, CheckCircle, AlertCircle, Clock, FileText } from 'lucide-react'; import type { CompanyAnalysis } from '../types'; export function Analysis() { const [companyName, setCompanyName] = useState(''); const [result, setResult] = useState(null); const mutation = useMutation({ mutationFn: (name: string) => analysisApi.analyzeCompany(name), onSuccess: (data) => setResult(data), }); const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); if (companyName.trim()) { mutation.mutate(companyName.trim()); } }; return (
{/* Header */}

Single Company Analysis

Analyze a company's patent portfolio using AI-powered insights.

{/* Search Form */}
setCompanyName(e.target.value)} placeholder="Enter company name (e.g., nvidia, intel, amd)" className="w-full bg-bg-card/80 border border-primary/30 rounded-xl pl-12 pr-4 py-3 text-text-primary placeholder-text-secondary/50 focus:outline-none focus:border-primary focus:ring-2 focus:ring-primary/20 transition-all" />
{/* Error */} {mutation.isError && (
Analysis failed. Please try again.
)} {/* Results */} {result && (
{/* Success/Failure Status */} {result.success ? (
Analysis complete for {result.company_name.toUpperCase()}
) : (
Analysis failed: {result.error}
)} {/* Metrics */}
{/* Analysis Content */} {result.success && result.analysis && (

AI Analysis Results

{result.analysis}
)}
)}
); } function MetricCard({ icon: Icon, label, value }: { icon: typeof FileText; label: string; value: string }) { return (
{value}
{label}
); }