'use client'; import { AreaChart, Area, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, } from 'recharts'; export interface PriceAreaChartPoint { period: string; avgPriceM2: number; } interface PriceAreaChartProps { data: PriceAreaChartPoint[]; height?: number; className?: string; } /** * 30-day price area chart using signal colors. * Green fill when latest > first point, red otherwise. */ export function PriceAreaChart({ data, height = 280, className }: PriceAreaChartProps) { const isUp = data.length >= 2 && data[data.length - 1]!.avgPriceM2 >= data[0]!.avgPriceM2; const strokeColor = isUp ? 'var(--color-signal-up)' : 'var(--color-signal-down)'; const fillColor = isUp ? 'var(--color-signal-up)' : 'var(--color-signal-down)'; return (
v >= 1_000_000 ? `${(v / 1_000_000).toFixed(0)}tr` : `${Math.round(v / 1000)}k` } /> [ `${(Number(value) / 1_000_000).toFixed(2)} tr/m²`, 'Giá TB', ]} />
); }