c98294a6a4
der-eine was the reference the whole PDP block-builder was designed to match (gallery sizing, black stepRow-facts icons, dynamic CTA label — see ProductBlocks.tsx). Migrated it onto its own system: hero body, usps (the 3 hero features), a "Was kann er?" fact-card section (its own 4 icons — pen/sparkle/compact, new; sunHigh, reused — carried over into the shared StepIcons set), pricing panel, automatic crossSell. Testimonials.tsx dropped, not migrated (testimonialsRef removed from the PDP builder earlier this session). Old Hero/Focus/Testimonials/ Pricing/PasstDazu components left as dead code, same as /tasse-die-pause's own migration. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013Eg6h91yngXmSnM51wxXM8
50 lines
2.0 KiB
TypeScript
50 lines
2.0 KiB
TypeScript
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";
|
||
|
||
const title = "Der Eine. – Für die eine Sache, die gerade zählt.";
|
||
|
||
// der-eine was the reference template the whole PDP block-builder system
|
||
// was designed to match (gallery sizing, black stepRow-facts icons,
|
||
// CTA-label pattern — see ProductBlocks.tsx's own comments) — now migrated
|
||
// onto it itself, same as /tasse-die-pause before it. Testimonials.tsx
|
||
// dropped entirely rather than migrated: the PDP builder no longer offers
|
||
// testimonialsRef (removed 2026-08-29, unused everywhere; the planned
|
||
// replacement is a real reviews feature). Hero.tsx/Focus.tsx/
|
||
// Testimonials.tsx/Pricing.tsx/PasstDazu.tsx in ./components are now dead
|
||
// code, left for a follow-up cleanup pass rather than deleted here — same
|
||
// as /tasse-die-pause's own old components.
|
||
export async function generateMetadata(): Promise<Metadata> {
|
||
const product = await getProductBySlug("stift-kugelschreiber");
|
||
const description = product?.descriptionText || undefined;
|
||
return {
|
||
title,
|
||
description,
|
||
alternates: { canonical: "/der-eine" },
|
||
openGraph: { title, description, url: "/der-eine" },
|
||
twitter: { title, description },
|
||
};
|
||
}
|
||
|
||
export default async function DerEinePage() {
|
||
const [product, seller] = await Promise.all([
|
||
getProductBySlug("stift-kugelschreiber"),
|
||
getCompanySettings(),
|
||
]);
|
||
if (!product) notFound();
|
||
const productSchema = buildProductSchema(product, "https://einfach-produktiv.mk360.de/der-eine", seller);
|
||
|
||
return (
|
||
<>
|
||
<script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(productSchema) }} />
|
||
<main className="flex flex-col flex-1">
|
||
<ProductBlocks product={product} />
|
||
</main>
|
||
<Footer />
|
||
</>
|
||
);
|
||
}
|