import { useApp } from '@/lib/context'; import { resolveName } from '@/lib/localization'; 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()].sort((a, b) => (a[1].green ?? 0) - (b[1].green ?? 0)); 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?.toLocaleString() ?? '--'} {vals.red?.toLocaleString() ?? '--'}
); }