import Link from "next/link"; import { Signal } from "@/lib/types"; import { formatPercent, formatPrice, formatVolume } from "./MarketSnapshotStrip"; import { StatusBadge } from "./StatusBadge"; export function SignalTable({ signals }: { signals: Signal[] }) { if (!signals.length) return
| Asset | Market | Score | Classification | Risk | Momentum | Trend | Sentiment | Why it surfaced |
|---|---|---|---|---|---|---|---|---|
| {signal.ticker} {signal.asset?.name ?? "Name pending"} {signal.asset?.asset_type ?? "Asset"} | {signal.asset?.sector ?? "Sector pending"} | {signal.asset?.exchange ?? "Exchange n/a"} | {formatPrice(signal.market_snapshot?.price, signal.market_snapshot?.currency)} {formatPercent(signal.market_snapshot?.perf_1d)} 1D | {formatPercent(signal.market_snapshot?.perf_5d)} 5D {signal.market_snapshot?.provider ?? "provider n/a"} | vol {formatVolume(signal.market_snapshot?.volume)} | {signal.blum_score.toFixed(1)} | {signal.risk_level} | {metric(signal, "momentum_score")} | {metric(signal, "trend_score")} | {metric(signal, "sentiment_score")} | {signal.explanation} |