import { useApp } from '@/lib/context'; import { resolveName } from '@/lib/localization'; import { formatSI } from '@/lib/formatNumber'; import { CardShell } from './CardShell'; import type { ChartConfig, SignalRow } from '@/lib/types'; interface Props { config: ChartConfig; rows: SignalRow[]; onEdit: () => void; onDelete: () => void; } export default function TableViz({ config, rows, onEdit, onDelete }: Props) { const { localeMap } = useApp(); const latest = new Map(); for (const row of rows) { latest.set(`${row.combinator}::${row.item_key}`, { green: row.green, red: row.red }); } const tableRows = [...latest.entries()].slice(0, config.series_limit); return (
{config.signal_type !== 'red' && } {config.signal_type !== 'green' && } {tableRows.map(([key, vals]) => { const [combinator, item_key] = key.split('::'); return ( {config.signal_type !== 'red' && ( )} {config.signal_type !== 'green' && ( )} ); })}
Item CombinatorGreenRed (NP)
{resolveName(item_key, localeMap)} {combinator} {vals.green != null ? formatSI(vals.green, undefined, 0) : '--'} {vals.red != null ? formatSI(vals.red, undefined, 0) : '--'}
); }