No description
Answers "which site earned what this month" without leaving the overview. Horizontal bars, so the site NAME is the y axis and the card grows downward as sites are added rather than squeezing the bars narrower. The month defaults to the latest month that actually carries billing, not the calendar month: the September invoices only land in October, so a "current month" default opened on an empty card that read as broken. A month picker covers the rest of the year, and a month with no invoice says so in words rather than drawing five zero-height bars. Figures come from buildSiteSummaries, so this card and /sites are the same numbers by construction — West Park Sep R 185 573, total R 780 003.61 on both. The site's own fetches are wrapped: the dashboard must still render its own numbers if the invoices collections are missing. Also p-4 sm:p-8 on the page shell, which was p-8 at every width. |
||
|---|---|---|
| .mavis/canvas-assets | ||
| app | ||
| components | ||
| data/source | ||
| lib | ||
| public | ||
| scripts | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| AGENTS.md | ||
| COOLIFY.md | ||
| Dockerfile | ||
| HANDOFF-PROMPT-2.md | ||
| HANDOFF-PROMPT-3.md | ||
| HANDOFF-PROMPT-4.md | ||
| HANDOFF-PROMPT.md | ||
| next.config.ts | ||
| package-lock.json | ||
| package.json | ||
| postcss.config.mjs | ||
| tsconfig.json | ||