diff --git a/shop/app/my-orders/page.tsx b/shop/app/my-orders/page.tsx index 38292af..971fe51 100644 --- a/shop/app/my-orders/page.tsx +++ b/shop/app/my-orders/page.tsx @@ -12,6 +12,7 @@ const statusLabel: Record = { active: 'In Bearbeitung', completed: 'Abgeschlossen', cancelled: 'Storniert', + rejected: 'Abgelehnt', } const statusClass: Record = { @@ -19,6 +20,7 @@ const statusClass: Record = { active: 'bg-green-500/20 text-green-400 border-green-500/30', completed: 'bg-blue-500/20 text-blue-400 border-blue-500/30', cancelled: 'bg-red-500/20 text-red-400 border-red-500/30', + rejected: 'bg-rose-500/20 text-rose-400 border-rose-500/30', } export default async function MyOrdersPage() { diff --git a/shop/app/order/success/page.tsx b/shop/app/order/success/page.tsx index 51f2293..7eef6c5 100644 --- a/shop/app/order/success/page.tsx +++ b/shop/app/order/success/page.tsx @@ -66,6 +66,7 @@ export default async function OrderSuccessPage({ pending: 'Eingegangen', active: 'In Bearbeitung', cancelled: 'Storniert', + rejected: 'Abgelehnt', } return ( diff --git a/shop/components/admin/orders-table.tsx b/shop/components/admin/orders-table.tsx index a65453f..3c885ee 100644 --- a/shop/components/admin/orders-table.tsx +++ b/shop/components/admin/orders-table.tsx @@ -24,6 +24,7 @@ const statusLabel: Record = { active: 'In Bearbeitung', completed: 'Abgeschlossen', cancelled: 'Storniert', + rejected: 'Abgelehnt', }; const statusClass: Record = { @@ -31,6 +32,7 @@ const statusClass: Record = { active: 'bg-blue-500/20 text-blue-400 border border-blue-500/30', completed: 'bg-green-500/20 text-green-400 border border-green-500/30', cancelled: 'bg-red-500/20 text-red-400 border border-red-500/30', + rejected: 'bg-rose-500/20 text-rose-400 border border-rose-500/30', }; export function OrdersTable({ initialOrders }: OrdersTableProps) { @@ -43,7 +45,7 @@ export function OrdersTable({ initialOrders }: OrdersTableProps) { setOrders(initialOrders); }, [initialOrders]); - const handleStatusChange = async (orderId: string, newStatus: 'pending' | 'active' | 'completed' | 'cancelled') => { + const handleStatusChange = async (orderId: string, newStatus: 'pending' | 'active' | 'completed' | 'cancelled' | 'rejected') => { setUpdatingId(orderId); try { await updateOrderStatus(orderId, newStatus); @@ -126,6 +128,14 @@ export function OrdersTable({ initialOrders }: OrdersTableProps) { > Storniert + diff --git a/shop/components/admin/recent-orders.tsx b/shop/components/admin/recent-orders.tsx index 3d43290..7d56698 100644 --- a/shop/components/admin/recent-orders.tsx +++ b/shop/components/admin/recent-orders.tsx @@ -23,12 +23,14 @@ const statusClass: Record = { pending: 'bg-amber-500/20 text-amber-400 border-amber-500/30', active: 'bg-green-500/20 text-green-400 border-green-500/30', cancelled: 'bg-red-500/20 text-red-400 border-red-500/30', + rejected: 'bg-rose-500/20 text-rose-400 border-rose-500/30', } const statusLabel: Record = { pending: 'Eingegangen', active: 'In Bearbeitung', cancelled: 'Storniert', + rejected: 'Abgelehnt', } const POLL_INTERVAL_MS = 30_000 diff --git a/shop/lib/actions/orders.ts b/shop/lib/actions/orders.ts index f261343..b06b78a 100644 --- a/shop/lib/actions/orders.ts +++ b/shop/lib/actions/orders.ts @@ -292,7 +292,7 @@ export async function submitOrder(params: { export async function updateOrderStatus( orderId: string, - newStatus: 'pending' | 'active' | 'completed' | 'cancelled' + newStatus: 'pending' | 'active' | 'completed' | 'cancelled' | 'rejected' ) { const admin = createAdminClient() @@ -337,6 +337,7 @@ export async function updateOrderStatus( active: 'In Bearbeitung', completed: 'Abgeschlossen', cancelled: 'Storniert', + rejected: 'Abgelehnt', } const oldLabel = statusLabelMap[oldStatus] || oldStatus const newLabel = statusLabelMap[newStatus] || newStatus diff --git a/shop/lib/types.ts b/shop/lib/types.ts index 3ed36d8..a00ee5b 100644 --- a/shop/lib/types.ts +++ b/shop/lib/types.ts @@ -160,7 +160,7 @@ export type Order = { order_data: OrderSnapshot total_price: number pdf_url: string | null - status: 'pending' | 'active' | 'completed' | 'cancelled' + status: 'pending' | 'active' | 'completed' | 'cancelled' | 'rejected' created_at: string }