feat(orders): add rejected status to order schema and admin table views
All checks were successful
Staging Build / build (push) Successful in 2m49s
All checks were successful
Staging Build / build (push) Successful in 2m49s
This commit is contained in:
@@ -12,6 +12,7 @@ const statusLabel: Record<string, string> = {
|
||||
active: 'In Bearbeitung',
|
||||
completed: 'Abgeschlossen',
|
||||
cancelled: 'Storniert',
|
||||
rejected: 'Abgelehnt',
|
||||
}
|
||||
|
||||
const statusClass: Record<string, string> = {
|
||||
@@ -19,6 +20,7 @@ const statusClass: Record<string, string> = {
|
||||
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() {
|
||||
|
||||
@@ -66,6 +66,7 @@ export default async function OrderSuccessPage({
|
||||
pending: 'Eingegangen',
|
||||
active: 'In Bearbeitung',
|
||||
cancelled: 'Storniert',
|
||||
rejected: 'Abgelehnt',
|
||||
}
|
||||
|
||||
return (
|
||||
|
||||
@@ -24,6 +24,7 @@ const statusLabel: Record<string, string> = {
|
||||
active: 'In Bearbeitung',
|
||||
completed: 'Abgeschlossen',
|
||||
cancelled: 'Storniert',
|
||||
rejected: 'Abgelehnt',
|
||||
};
|
||||
|
||||
const statusClass: Record<string, string> = {
|
||||
@@ -31,6 +32,7 @@ const statusClass: Record<string, string> = {
|
||||
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
|
||||
</Button>
|
||||
<Button
|
||||
variant={statusFilter === "rejected" ? "default" : "outline"}
|
||||
size="sm"
|
||||
onClick={() => setStatusFilter("rejected")}
|
||||
className="text-xs border-rose-500/20 hover:bg-rose-500/10 text-rose-400"
|
||||
>
|
||||
Abgelehnt
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -23,12 +23,14 @@ const statusClass: Record<string, string> = {
|
||||
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<string, string> = {
|
||||
pending: 'Eingegangen',
|
||||
active: 'In Bearbeitung',
|
||||
cancelled: 'Storniert',
|
||||
rejected: 'Abgelehnt',
|
||||
}
|
||||
|
||||
const POLL_INTERVAL_MS = 30_000
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user