deckhearth/components/DeckBuilderStatsBar.js
Randall Stillwell 4645095105 refactor(deck-builder): extract stats lib and stats bar (Brief 1)
Move Commander basic-land checks and deck aggregate metrics into
lib/deck-builder-stats.js with unit tests; render the summary row via
DeckBuilderStatsBar to shrink the page god-component.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-03 17:11:32 -05:00

30 lines
1.2 KiB
JavaScript

/**
* Summary metrics row for the deck builder main panel.
* @param {{ stats: { totalCards: number, avgCmc: string|number, colorCounts: object, typeCounts: object } }} props
*/
export default function DeckBuilderStatsBar({ stats }) {
return (
<div className="grid grid-cols-2 md:grid-cols-4 gap-4 mb-6 p-4 bg-bg-primary rounded-lg">
<div className="text-center">
<div className="text-lg font-bold text-text-primary">{stats.totalCards}/100</div>
<div className="text-text-secondary text-sm">Cards</div>
</div>
<div className="text-center">
<div className="text-lg font-bold text-text-primary">{stats.avgCmc}</div>
<div className="text-text-secondary text-sm">Avg CMC</div>
</div>
<div className="text-center">
<div className="text-lg font-bold text-text-primary">
{Object.keys(stats.colorCounts).length}
</div>
<div className="text-text-secondary text-sm">Colors</div>
</div>
<div className="text-center">
<div className="text-lg font-bold text-text-primary">
{Object.keys(stats.typeCounts).length}
</div>
<div className="text-text-secondary text-sm">Types</div>
</div>
</div>
);
}