- Introduced a new section detailing the Single Source of Truth for various components, linking to their respective CLAUDE.md files. - Enhanced clarity on documentation organization across different areas of the project.
1.2 KiB
1.2 KiB
components/dashboard/ — Dashboard
UI-Komponenten für die Startseite nach dem Login.
Dateien
| Datei | Zweck |
|---|---|
canvas-card.tsx |
Karte für einen Canvas in der Übersicht (Thumbnail, Name, Datum) |
credit-overview.tsx |
Monatsverbrauch und verfügbare Credits als Balken-Visualisierung |
recent-transactions.tsx |
Liste der letzten Credit-Transaktionen |
Datenquellen
Alle Daten kommen aus Convex-Queries via useAuthQuery (aus hooks/use-auth-query.ts):
| Komponente | Query |
|---|---|
canvas-card.tsx |
api.canvases.list |
credit-overview.tsx |
api.credits.getBalance, api.credits.getUsageStats |
recent-transactions.tsx |
api.credits.getRecentTransactions |
Layout-Seite
app/dashboard/page.tsx — Server Component, rendert Dashboard-Layout mit den Komponenten oben.
Konventionen
- Kein lokaler State für Server-Daten — alles via Convex-Subscriptions (reaktiv)
useAuthQuerystattuseQueryverwenden, um Auth-Races zu vermeiden (skippt Query bis Token bereit ist)- Canvas-Thumbnails sind optional (
thumbnail?: Id<"_storage">) — Fallback-State immer behandeln