Update dashboard components to reflect API-driven percentage values #64

Merged
Hammond merged 1 commits from feat/booking-panel into master 2025-12-05 14:31:45 +00:00
2 changed files with 15 additions and 9 deletions
Showing only changes of commit 0f60e82bfb - Show all commits

View File

@ -117,16 +117,17 @@ export default function Dashboard() {
return sum + amount;
}, 0);
// For now, use static trends (in a real app, you'd calculate these from historical data)
// Trends object kept for compatibility but not used for percentage badges
// All percentage badges now use API-provided _pct values
const trends = {
total_users: "+12%",
active_users: "+8%",
total_bookings: "+24%",
upcoming_bookings: "+6",
total_users: "0%",
active_users: "0%",
total_bookings: "0%",
upcoming_bookings: "0",
completed_bookings: "0%",
cancelled_bookings: "0%",
total_revenue: "+18%",
monthly_revenue: "+32%",
total_revenue: "0%",
monthly_revenue: "0%",
};
setStats({
@ -196,14 +197,14 @@ export default function Dashboard() {
title: "Active Users",
value: stats?.active_users ?? 0,
icon: UserCheck,
trend: stats?.trends.active_users ?? "0%",
trend: undefined, // No _pct field from API for active users
trendUp: true,
},
{
title: "Total Bookings",
value: stats?.total_bookings ?? 0,
icon: Calendar,
trend: stats?.trends.total_bookings ?? "0%",
trend: undefined, // No _pct field from API for total bookings
trendUp: true,
},
{

View File

@ -158,6 +158,7 @@ export default function UserDashboard() {
};
}
// Fallback: calculate from appointments if stats not loaded yet
// Note: Percentage values (_pct) are only available from API, not calculated
const scheduled = appointments.filter(a => a.status === "scheduled").length;
const completed = appointments.filter(a => a.status === "completed").length;
const pending_review = appointments.filter(a => a.status === "pending_review").length;
@ -167,9 +168,13 @@ export default function UserDashboard() {
return {
scheduled,
scheduled_pct: undefined, // Only from API
completed,
completed_pct: undefined, // Only from API
pending_review,
pending_review_pct: undefined, // Only from API
rejected,
rejected_pct: undefined, // Only from API
total_requests,
completion_rate,
};