feat(dashboard): add customer accordion view and extension flow
All checks were successful
Staging Build / build (push) Successful in 3m1s

This commit is contained in:
DanielS
2026-07-21 08:43:00 +02:00
parent 86b63ce77e
commit 8b4fd5f02e
6 changed files with 390 additions and 110 deletions

View File

@@ -8,11 +8,12 @@ import { redirect } from 'next/navigation'
import { Suspense } from 'react'
interface PageProps {
searchParams: Promise<{ id?: string }>
searchParams: Promise<{ id?: string; orderId?: string; mode?: string }>
}
export default async function OrderPage({ searchParams }: PageProps) {
const params = await searchParams
const orderId = params.orderId || params.id
return (
<div className="min-h-screen bg-[#0a0a0a] text-white selection:bg-primary/30">
<div className="container mx-auto py-10">
@@ -26,14 +27,14 @@ export default async function OrderPage({ searchParams }: PageProps) {
</div>
<Suspense fallback={<div className="h-96 w-full animate-pulse bg-white/5 rounded-2xl" />}>
<OrderDataWrapper orderId={params.id} />
<OrderDataWrapper orderId={orderId} mode={params.mode} />
</Suspense>
</div>
</div>
)
}
async function OrderDataWrapper({ orderId }: { orderId?: string }) {
async function OrderDataWrapper({ orderId, mode }: { orderId?: string; mode?: string }) {
const supabase = await createClient()
const { data: { user } } = await supabase.auth.getUser()
@@ -83,7 +84,7 @@ async function OrderDataWrapper({ orderId }: { orderId?: string }) {
redirect('/order')
}
if (orderData.status === 'completed' && !isAdmin) {
if (orderData.status === 'completed' && !isAdmin && mode !== 'extension') {
redirect('/order')
}