import type { Metadata } from "next"; import { redirect } from "next/navigation"; import { Container, SectionHeading, LinkButton } from "@/components/ui"; import { getLocale } from "@/i18n/locale"; import { getDictionary } from "@/i18n/get-dictionary"; export const metadata: Metadata = { title: "Bestellung abgebrochen", robots: { index: false } }; export const dynamic = "force-dynamic"; // Reine Anzeige, nachdem eine Zahlung per POST /api/checkout/cancel // abgebrochen wurde. Frueher gab ein GET mit ?ref= hier den Bestand // frei — ein Zustandswechsel beim blossen Aufruf, den auch Link-Vorschauen // und Mail-Scanner ausloesen. Alte Links fuehren deshalb nur noch hierher; // ihre Sitzung laeuft ohnehin nach spaetestens 32 Minuten ab und gibt den // Bestand dann ueber den Webhook frei. export default async function CheckoutCancelPage(props: PageProps<"/checkout/cancel">) { const t = getDictionary(await getLocale()); const { ref } = await props.searchParams; if (typeof ref === "string" && ref) { // Token aus Adresszeile, Verlauf und Referer nehmen. redirect("/checkout/cancel"); } return (

{t.checkoutCancelPage.text}

{t.checkoutCancelPage.released}

{t.checkoutCancelPage.backToCart}
); }