"use client" import { formatCurrency } from "@/lib/utils" interface MonthData { month: string label: string amount: number } interface RevenueChartProps { data: MonthData[] thisMonth: number pending: number } export function RevenueChart({ data, thisMonth, pending }: RevenueChartProps) { const max = Math.max(...data.map((d) => d.amount), 1) const total = data.reduce((sum, d) => sum + d.amount, 0) const currentMonthKey = new Date().toISOString().slice(0, 7) const lastEntry = data[data.length - 1] return (
{/* Header */}

Revenue Overview

{formatCurrency(thisMonth)}

Collected this month {pending > 0 && ยท {formatCurrency(pending)} pending}

Collected
{/* Bar chart */}
{data.map((d) => { const isCurrentMonth = d.month === currentMonthKey const heightPct = max > 0 ? (d.amount / max) * 100 : 0 const minHeight = d.amount > 0 ? 8 : 4 return (
{/* Tooltip */}
{formatCurrency(d.amount)}
{/* Bar */}
0 ? "bg-white/[0.12] group-hover:bg-white/[0.2]" : "bg-white/[0.04]" }`} style={{ height: `${Math.max(heightPct, minHeight)}%` }} />
{/* Label */} {d.label}
) })}
{/* Summary row */}

6-mo total

{formatCurrency(total)}

Monthly avg

{formatCurrency(Math.round(total / 6))}

Best month

{formatCurrency(max === 1 ? 0 : max)}

) }