"use client"; import { useState } from "react"; import { ExternalLink } from "lucide-react"; import { Panel } from "@/components/ui/panel"; import type { CompanyAnalysis } from "@/lib/types"; type CompanyOverviewCardProps = { analysis: CompanyAnalysis; }; export function CompanyOverviewCard(props: CompanyOverviewCardProps) { const [expanded, setExpanded] = useState(false); // Get the actual business description, filtering out raw data artifacts const rawDescription = props.analysis.companyProfile.description; const isRawData = rawDescription && ( rawDescription.includes('http://') || rawDescription.includes('P1Y') || rawDescription.includes('P3Y') || rawDescription.includes('FY false') ); const description = !rawDescription || isRawData ? "No business description available." : rawDescription; const needsClamp = description.length > 320; // Combine metadata into a single line const metadata = [ props.analysis.company.ticker, props.analysis.company.sector ?? props.analysis.companyProfile.industry, props.analysis.company.cik ? `CIK ${props.analysis.company.cik}` : null, ].filter(Boolean).join(' ยท '); return (
{/* Header with company name and metadata */}

{props.analysis.company.companyName}

{metadata}

{/* Business description section */}

Business description

{expanded || !needsClamp ? description : `${description.slice(0, 320).trimEnd()}...`}

{props.analysis.companyProfile.website ? ( Website ) : null}
{needsClamp ? ( ) : null}
); }