feat: dashboard box "Messaggi Clienti" — chat clienti in attesa di risposta

Nuovo MessagesWidget nella colonna 1/3 della dashboard: riusa
getConversations() filtrando le conversazioni unread, mostra le prime 4
con anteprima e deep-link "Rispondi" a /admin/conversazioni?c=<clientId>.
Pill emerald "N Nuovi" + pallino pulsante, empty state quando non c'è nulla
in attesa. Stessa fonte di verità (clients.admin_last_read_at) del badge
sidebar. Aggiornato DESIGN-SYSTEM.md (inventory + note Conversazioni/dashboard)
e il mock design-reference/pagina-dashboard.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-11 16:23:43 +02:00
parent c1cc13a99a
commit a1d8d18902
4 changed files with 147 additions and 12 deletions
+6
View File
@@ -1,6 +1,7 @@
import { Suspense } from "react";
import { getDashboardStats } from "@/lib/dashboard-queries";
import { FollowUpWidget } from "@/components/admin/dashboard/FollowUpWidget";
import { MessagesWidget } from "@/components/admin/dashboard/MessagesWidget";
import {
getAnalyticsByYear,
getTotalTrackedHours,
@@ -119,6 +120,11 @@ export default async function AdminDashboard({
>
<FollowUpWidget />
</Suspense>
<Suspense
fallback={<div className="animate-pulse h-40 bg-muted rounded-xl" />}
>
<MessagesWidget />
</Suspense>
<OffersSoldChart data={offersSold} />
</div>
</div>