← back to Stayclaim
src/components/RetiredFeatureNotice.tsx
51 lines
/**
* RetiredFeatureNotice — soft-disable stub for paid features when FREE_FOREVER=true.
* Used by /promote, /hosts, etc. Cohesive with the editorial archive aesthetic.
* Per-host brand name is read from the surface registry so each domain shows
* its own name in the body copy.
*/
import Link from 'next/link';
import { headers } from 'next/headers';
import { BreadcrumbArchive } from './BreadcrumbArchive';
import { siteForHost } from '@/lib/site';
export async function RetiredFeatureNotice({
title,
message,
}: {
title: string;
message?: string;
}) {
const h = await headers();
const surface = siteForHost(h.get('x-pastdoor-host') || h.get('host'));
return (
<>
<div className="max-w-2xl mx-auto px-6 pt-6">
<BreadcrumbArchive items={[{ label: 'Archive', href: '/' }, { label: 'Retired' }]} />
</div>
<main className="max-w-2xl mx-auto px-6 py-20 text-ink">
<p className="text-[11px] uppercase tracking-[0.2em] text-ink/50 mb-3">archive note</p>
<h1 className="font-display text-4xl tracking-[-0.01em] mb-4">{title}</h1>
<p className="text-ink/75 leading-relaxed mb-6">
{message ??
`This feature has been retired. ${surface.brandName} is free forever — no paid tiers, no promoted placements, no host upgrades. Every address page is generated equally from the public archive.`}
</p>
<div className="flex gap-3 mt-8">
<Link
href="/"
className="inline-block border border-ink/30 px-5 py-2 text-sm uppercase tracking-[0.15em] hover:bg-ink hover:text-cream transition"
>
Back to the archive
</Link>
<Link
href="/submit"
className="inline-block border border-ink/30 px-5 py-2 text-sm uppercase tracking-[0.15em] hover:bg-ink hover:text-cream transition"
>
Add an address
</Link>
</div>
</main>
</>
);
}