import { Sparkline } from '@/components/charts/sparkline.js'; import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card.js'; import { BarChart3 } from 'lucide-react'; import { fetchLatestPrices, fetchPriceSparklines } from '@/actions/prices.js'; import { deserialize } from '@/lib/superjson.js'; export async function PricesByRegion() { const [pricesResult, sparklinesResult] = await Promise.all([fetchLatestPrices(), fetchPriceSparklines()]); const prices = pricesResult.ok ? deserialize< Array<{ price_mwh: number; region_code: string; region_name: string; }> >(pricesResult.data) : []; const sparklines = sparklinesResult.ok ? deserialize>(sparklinesResult.data) : []; const sparklineMap: Record = {}; for (const s of sparklines) { sparklineMap[s.region_code] = s.points; } return ( Recent Prices by Region {prices.length > 0 ? (
{prices.map(p => { const regionSparkline = sparklineMap[p.region_code]; return (
{p.region_code}
{regionSparkline && regionSparkline.length >= 2 && ( )}
${p.price_mwh.toFixed(2)} /MWh
); })}
) : (

No price data available yet.

)}
); }