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) => (
// oxlint-disable-next-line react/no-array-index-key
{parsed.meta.fields?.map((key) => (
{row[key] ?? ""}
))}
))}
);
}