← 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>
    </>
  );
}