From 466cca5cb435df9048f5ac828019eaaffce48b23 Mon Sep 17 00:00:00 2001
From: dwindown
Date: Thu, 25 Dec 2025 21:23:56 +0700
Subject: [PATCH] Make all status badges pill-shaped and standardize pending
color
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- Add rounded-full to all status badges across admin and member pages
- Change Pending badge color from bg-secondary to bg-amber-500 text-white
- Update AdminDashboard to use Badge component instead of inline span
- Standardize badge colors everywhere:
- Paid (Lunas): bg-brand-accent text-white
- Pending: bg-amber-500 text-white
- Cancelled: bg-destructive text-white
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Sonnet 4.5
---
src/components/reviews/ConsultingHistory.tsx | 10 +++++-----
src/pages/Dashboard.tsx | 8 ++++----
src/pages/admin/AdminDashboard.tsx | 9 ++++-----
src/pages/admin/AdminOrders.tsx | 8 ++++----
src/pages/member/MemberAccess.tsx | 2 +-
src/pages/member/MemberDashboard.tsx | 2 +-
src/pages/member/MemberOrders.tsx | 8 ++++----
src/pages/member/OrderDetail.tsx | 8 ++++----
8 files changed, 27 insertions(+), 28 deletions(-)
diff --git a/src/components/reviews/ConsultingHistory.tsx b/src/components/reviews/ConsultingHistory.tsx
index 7122467..39d0906 100644
--- a/src/components/reviews/ConsultingHistory.tsx
+++ b/src/components/reviews/ConsultingHistory.tsx
@@ -84,15 +84,15 @@ export function ConsultingHistory({ userId }: ConsultingHistoryProps) {
const getStatusBadge = (status: string) => {
switch (status) {
case 'done':
- return Selesai;
+ return Selesai;
case 'confirmed':
- return Terkonfirmasi;
+ return Terkonfirmasi;
case 'pending_payment':
- return Pending;
+ return Pending;
case 'cancelled':
- return Dibatalkan;
+ return Dibatalkan;
default:
- return {status};
+ return {status};
}
};
diff --git a/src/pages/Dashboard.tsx b/src/pages/Dashboard.tsx
index fa5b6cd..6e71973 100644
--- a/src/pages/Dashboard.tsx
+++ b/src/pages/Dashboard.tsx
@@ -59,8 +59,8 @@ export default function Dashboard() {
const getStatusColor = (status: string) => {
switch (status) {
case 'paid': return 'bg-brand-accent text-white';
- case 'pending': return 'bg-secondary';
- case 'cancelled': return 'bg-destructive';
+ case 'pending': return 'bg-amber-500 text-white';
+ case 'cancelled': return 'bg-destructive text-white';
default: return 'bg-secondary';
}
};
@@ -164,7 +164,7 @@ export default function Dashboard() {
{item.product.title}
{item.product.type}
- Aktif
+ Aktif
@@ -195,7 +195,7 @@ export default function Dashboard() {
{formatDate(order.created_at)}
-
+
{getPaymentStatusLabel(order.payment_status || order.status)}
{formatIDR(order.total_amount)}
diff --git a/src/pages/admin/AdminDashboard.tsx b/src/pages/admin/AdminDashboard.tsx
index d199047..5a18652 100644
--- a/src/pages/admin/AdminDashboard.tsx
+++ b/src/pages/admin/AdminDashboard.tsx
@@ -4,6 +4,7 @@ import { supabase } from "@/integrations/supabase/client";
import { useAuth } from "@/hooks/useAuth";
import { AppLayout } from "@/components/AppLayout";
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
+import { Badge } from "@/components/ui/badge";
import { Skeleton } from "@/components/ui/skeleton";
import { formatIDR } from "@/lib/format";
import { Package, Users, Receipt, TrendingUp, BookOpen, Calendar } from "lucide-react";
@@ -124,12 +125,10 @@ export default function AdminDashboard() {
-
{formatIDR(order.total_amount)}
-
+
{order.payment_status === "paid" ? "Lunas" : "Pending"}
-
+
+
{formatIDR(order.total_amount)}
))}
diff --git a/src/pages/admin/AdminOrders.tsx b/src/pages/admin/AdminOrders.tsx
index 20a3855..e2d0e37 100644
--- a/src/pages/admin/AdminOrders.tsx
+++ b/src/pages/admin/AdminOrders.tsx
@@ -149,13 +149,13 @@ export default function AdminOrders() {
const getStatusBadge = (status: string | null) => {
switch (status) {
case "paid":
- return Lunas;
+ return Lunas;
case "pending":
- return Pending;
+ return Pending;
case "cancelled":
- return Dibatalkan;
+ return Dibatalkan;
default:
- return {status};
+ return {status};
}
};
diff --git a/src/pages/member/MemberAccess.tsx b/src/pages/member/MemberAccess.tsx
index 9c37100..2655297 100644
--- a/src/pages/member/MemberAccess.tsx
+++ b/src/pages/member/MemberAccess.tsx
@@ -164,7 +164,7 @@ export default function MemberAccess() {
{item.product.title}
{item.product.type}
- Aktif
+ Aktif
diff --git a/src/pages/member/MemberDashboard.tsx b/src/pages/member/MemberDashboard.tsx
index 1339a0c..147612d 100644
--- a/src/pages/member/MemberDashboard.tsx
+++ b/src/pages/member/MemberDashboard.tsx
@@ -298,7 +298,7 @@ export default function MemberDashboard() {
-
+
{order.payment_status === "paid" ? "Lunas" : "Pending"}
{formatIDR(order.total_amount)}
diff --git a/src/pages/member/MemberOrders.tsx b/src/pages/member/MemberOrders.tsx
index 9daa0bb..efc0f39 100644
--- a/src/pages/member/MemberOrders.tsx
+++ b/src/pages/member/MemberOrders.tsx
@@ -44,11 +44,11 @@ export default function MemberOrders() {
case "paid":
return "bg-brand-accent text-white";
case "pending":
- return "bg-secondary text-primary";
+ return "bg-amber-500 text-white";
case "cancelled":
- return "bg-destructive";
+ return "bg-destructive text-white";
default:
- return "bg-secondary text-primary";
+ return "bg-secondary";
}
};
@@ -112,7 +112,7 @@ export default function MemberOrders() {
)}
-
+
{getPaymentStatusLabel(order.payment_status || order.status)}
{formatIDR(order.total_amount)}
diff --git a/src/pages/member/OrderDetail.tsx b/src/pages/member/OrderDetail.tsx
index 882b1cf..eb35c4c 100644
--- a/src/pages/member/OrderDetail.tsx
+++ b/src/pages/member/OrderDetail.tsx
@@ -208,12 +208,12 @@ export default function OrderDetail() {
case "paid":
return "bg-brand-accent text-white";
case "pending":
- return "bg-secondary text-primary";
+ return "bg-amber-500 text-white";
case "cancelled":
case "failed":
- return "bg-destructive";
+ return "bg-destructive text-white";
default:
- return "bg-secondary text-primary";
+ return "bg-secondary";
}
};
@@ -337,7 +337,7 @@ export default function OrderDetail() {
Detail Order
#{order.id.slice(0, 8)}
-
+
{getStatusLabel(order.payment_status || order.status)}