Files
einfach-produktiv/app/tasse-die-pause/page.tsx
T
Marco 2686fd3106 Migrate /tasse-die-pause onto the PDP block system
First of the 3 legacy hand-coded PDPs migrated, now that Products.layout/
ProductBlocks.tsx exist. "Die Pause." got real final copy this session
(product doc's layout populated directly in Payload: hero body, a "So
einfach ist eine Pause" 3-step section, product facts as a pill list, a
Björn-quote contrast line, closing copy, pricing panel) — good first
candidate since its own page was still just a provisional scaffold.
Hero.tsx/Pricing.tsx in ./components are now dead code, left for a
follow-up cleanup pass rather than deleted here.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013Eg6h91yngXmSnM51wxXM8
2026-08-29 23:02:33 +00:00

45 lines
1.8 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import type { Metadata } from "next";
import { notFound } from "next/navigation";
import { ProductBlocks } from "../components/ProductBlocks";
import { Footer } from "../components/Footer";
import { getProductBySlug, getCompanySettings } from "../lib/payload";
import { buildProductSchema } from "../lib/structuredData";
// "Die Pause." finally has real copy and a name (2026-08-29) — first PDP
// migrated off its own hand-coded Hero/Pricing onto the block-driven
// system (Products.layout/ProductBlocks.tsx), now that both exist. Was a
// provisional scaffold before (naming/design undecided, parked
// 2026-08-24); Hero.tsx/Pricing.tsx in ./components are dead code now,
// kept only until a next cleanup pass removes them.
export async function generateMetadata(): Promise<Metadata> {
const product = await getProductBySlug("tasse-die-pause");
const title = product ? `${product.name} einfach produktiv.` : "Tasse einfach produktiv.";
const description = product?.descriptionText || undefined;
return {
title,
description,
alternates: { canonical: "/tasse-die-pause" },
openGraph: { title, description, url: "/tasse-die-pause" },
twitter: { title, description },
};
}
export default async function TasseDiePausePage() {
const [product, seller] = await Promise.all([
getProductBySlug("tasse-die-pause"),
getCompanySettings(),
]);
if (!product) notFound();
const productSchema = buildProductSchema(product, "https://einfach-produktiv.mk360.de/tasse-die-pause", seller);
return (
<>
<script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(productSchema) }} />
<main className="flex flex-col flex-1">
<ProductBlocks product={product} />
</main>
<Footer />
</>
);
}