fix: production login error masking, resolve navbar hydration mismatch, and gracefully handle database render errors
All checks were successful
Staging Build / build (push) Successful in 2m15s
All checks were successful
Staging Build / build (push) Successful in 2m15s
This commit is contained in:
@@ -2,6 +2,7 @@ export const dynamic = 'force-dynamic';
|
||||
import { redirect } from 'next/navigation'
|
||||
import Link from 'next/link'
|
||||
import { getEndCustomers } from '@/lib/actions/end-customers'
|
||||
import type { EndCustomer } from '@/lib/types'
|
||||
import { ArrowLeft, Building2, Plus, Edit2, AlertTriangle } from 'lucide-react'
|
||||
import { Button } from '@/components/ui/button'
|
||||
import { Card, CardContent } from '@/components/ui/card'
|
||||
@@ -13,10 +14,20 @@ export default async function MyCustomersPage() {
|
||||
const { data: { user } } = await supabase.auth.getUser()
|
||||
if (!user) redirect('/auth/login')
|
||||
|
||||
const customers = await getEndCustomers()
|
||||
let customers: EndCustomer[] = []
|
||||
let fetchError: string | null = null
|
||||
try {
|
||||
customers = await getEndCustomers()
|
||||
} catch (err: any) {
|
||||
console.error("Error loading end customers:", err)
|
||||
fetchError = err.message || "Es gab ein Problem beim Laden Ihrer Endkunden."
|
||||
}
|
||||
|
||||
// Anzahl Bestellungen pro Endkunde
|
||||
const { data: orderCounts } = await supabase.from('orders').select('end_customer_id').not('end_customer_id', 'is', null);
|
||||
const { data: orderCounts, error: orderError } = await supabase.from('orders').select('end_customer_id').not('end_customer_id', 'is', null);
|
||||
if (orderError) {
|
||||
console.error("Error loading order counts:", orderError)
|
||||
}
|
||||
|
||||
const countMap: Record<string, number> = {}
|
||||
;(orderCounts ?? []).forEach(o => {
|
||||
@@ -53,6 +64,12 @@ export default async function MyCustomersPage() {
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
{fetchError && (
|
||||
<div className="p-4 rounded-xl bg-red-500/10 border border-red-500/20 text-red-200 text-sm">
|
||||
{fetchError}
|
||||
</div>
|
||||
)}
|
||||
|
||||
{/* Keine Kunden */}
|
||||
{customers.length === 0 && (
|
||||
<Card className="glass-dark border-white/10">
|
||||
|
||||
Reference in New Issue
Block a user