From 2b2ee4d23ce6e2dde0497fd91b9df66ef3b3a094 Mon Sep 17 00:00:00 2001 From: Marco Date: Thu, 30 Jul 2026 23:12:54 +0000 Subject: [PATCH] Gate order-list filters behind CompanySettings.orderFilterEnabled Co-Authored-By: Claude Sonnet 5 --- app/konto/bestellungen/page.tsx | 9 +++++++-- app/lib/payload.ts | 15 +++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/app/konto/bestellungen/page.tsx b/app/konto/bestellungen/page.tsx index 73f6388..c067048 100644 --- a/app/konto/bestellungen/page.tsx +++ b/app/konto/bestellungen/page.tsx @@ -11,6 +11,7 @@ import { getCustomerOrderYears, ORDER_STATUS_LABEL, } from "../../lib/customerAuth"; +import { getOrderFilterEnabled } from "../../lib/payload"; import { OrderStatusBadge } from "../components/OrderStatusBadge"; import { PaymentStatusBadge } from "../components/PaymentStatusBadge"; import { LogoutButton } from "../components/LogoutButton"; @@ -47,7 +48,11 @@ export default async function KontoBestellungenPage({ const session = await getSessionCustomer(); if (!session) redirect("/konto/login"); - const { status, paymentStatus, year } = await searchParams; + const orderFilterEnabled = await getOrderFilterEnabled(); + const rawSearchParams = await searchParams; + const status = orderFilterEnabled ? rawSearchParams.status : undefined; + const paymentStatus = orderFilterEnabled ? rawSearchParams.paymentStatus : undefined; + const year = orderFilterEnabled ? rawSearchParams.year : undefined; const [orders, availableYears] = await Promise.all([ getCustomerOrders(session.token, session.customer.id, true, { status, paymentStatus, year }), @@ -65,7 +70,7 @@ export default async function KontoBestellungenPage({ Eingeloggt als {session.customer.email} (Kundennummer {session.customer.customerNumber})

- {availableYears.length > 0 && ( + {orderFilterEnabled && availableYears.length > 0 && ( diff --git a/app/lib/payload.ts b/app/lib/payload.ts index 6b08013..a51bc6b 100644 --- a/app/lib/payload.ts +++ b/app/lib/payload.ts @@ -1070,6 +1070,21 @@ export async function getBlogFilterEnabled(): Promise { return data.docs?.[0]?.blogFilterEnabled ?? false; } +// Same pattern — gates /konto/bestellungen's status/paymentStatus/year filters. +export async function getOrderFilterEnabled(): Promise { + const params = new URLSearchParams({ "where[tenant.slug][equals]": TENANT_SLUG, limit: "1" }); + const res = await fetch(`${PAYLOAD_URL}/api/company-settings?${params}`, { + headers: { "x-order-service-secret": process.env.ORDER_SERVICE_SECRET || "" }, + next: { revalidate: 60 }, + }); + if (!res.ok) { + console.error(`getOrderFilterEnabled: Payload returned ${res.status} ${res.statusText}`); + return false; + } + const data: { docs?: { orderFilterEnabled?: boolean }[] } = await res.json(); + return data.docs?.[0]?.orderFilterEnabled ?? false; +} + export type SeoSettings = { defaultTitle: string | null; titleTemplate: string | null;