'use client' import { useEffect, useState } from 'react' import { useRouter } from 'next/navigation' import axios from 'axios' import { format, parseISO } from 'date-fns' const API = process.env.NEXT_PUBLIC_API_URL || 'http://localhost:3001/api/v1' interface DayEarning { session_date: string deliveries_count: number delivery_revenue: number tips_earned: number net_earnings: number daily_fee: number fee_paid: boolean } function BreakEvenBar({ revenue, fee }: { revenue: number; fee: number }) { const pct = Math.min(100, Math.round((revenue / fee) * 100)) const broke = revenue >= fee return (
Your delivery earnings breakdown
Net Earnings
${totals.netEarnings.toFixed(2)}
after $20/day fees
Total Deliveries
{totals.deliveries}
{totals.daysWorked} days worked
Tips Earned
${totals.tips.toFixed(2)}
100% yours
Avg / Day
${avgPerDay.toFixed(2)}
on days worked
Your average: {(totals.deliveries / totals.daysWorked).toFixed(1)} deliveries/day — break-even at 4/day ($20 ÷ $5 = 4 deliveries)
You're earning {Math.round(totals.deliveries / totals.daysWorked) > 4 ? 'above' : 'near'} break-even on average. Every delivery after #4 is pure profit.
No earnings data for this period
Start delivering to see your earnings here
{format(parseISO(day.session_date), 'EEE, MMM d')}
{day.deliveries_count} deliveries {tips > 0 && ` · $${tips.toFixed(2)} tips`}
{isProfitable ? '+' : ''}${net.toFixed(2)}
$${revenue.toFixed(2)} earned − $${fee.toFixed(2)} fee {!day.fee_paid && ' (unpaid)'}