import classNames from 'classnames'; import Papa from 'papaparse'; import { useMemo } from 'react'; import { Table, TableBody, TableCell, TableHead, TableHeaderCell, TableRow } from '../core/Table'; interface Props { text: string | null; className?: string; } export function CsvViewer({ text, className }: Props) { return (
); } export function CsvViewerInner({ text, className }: { text: string | null; className?: string }) { const parsed = useMemo(() => { if (text == null) return null; return Papa.parse>(text, { header: true, skipEmptyLines: true }); }, [text]); if (parsed === null) return null; return (
{parsed.meta.fields?.map((field) => ( {field} ))} {parsed.data.map((row, i) => ( // biome-ignore lint/suspicious/noArrayIndexKey: none {parsed.meta.fields?.map((key) => ( {row[key] ?? ''} ))} ))}
); }