import type { Metadata } from "next";
import Link from "next/link";

import { ConverterCard } from "@/components/ConverterCard";
import { getConverterPage, CONVERTER_SLUGS } from "@/lib/converterPages";

export function generateStaticParams() {
  return CONVERTER_SLUGS.map((slug) => ({ slug }));
}

export async function generateMetadata({
  params,
}: {
  params: Promise<{ slug: string }>;
}): Promise<Metadata> {
  const { slug } = await params;
  const p = getConverterPage(slug);
  if (!p) return { title: "Converter" };
  return {
    title: p.title,
    description: p.description,
  };
}

export default async function ConverterLandingPage({
  params,
}: {
  params: Promise<{ slug: string }>;
}) {
  const { slug } = await params;
  const p = getConverterPage(slug);
  if (!p) {
    return (
      <main className="relative z-10 min-h-screen px-4 py-10 sm:px-6">
        <div className="mx-auto w-full max-w-3xl">
          <h1 className="font-display text-2xl font-bold tracking-tight text-slate-900">Page not found</h1>
          <p className="mt-2 text-slate-600">
            That converter page doesn’t exist. Go back to the main image converter.
          </p>
          <Link
            href="/"
            className="mt-5 inline-flex rounded-xl bg-white/70 px-4 py-2 text-sm font-semibold text-indigo-700 shadow-sm backdrop-blur hover:bg-white"
          >
            Back to home
          </Link>
        </div>
      </main>
    );
  }

  return (
    <main className="relative z-10 min-h-screen overflow-x-clip px-4 pb-20 pt-8 sm:px-6 sm:pb-24 sm:pt-10">
      <div className="relative mx-auto flex w-full max-w-5xl flex-col gap-10 sm:gap-12">
        <nav className="glass-panel flex flex-wrap items-center justify-between gap-3 rounded-2xl px-4 py-2.5 sm:px-6">
          <Link
            href="/"
            className="font-display rounded-xl px-2 py-2 text-sm font-bold tracking-tight text-slate-900 hover:bg-white/50"
          >
            ← Image Converter
          </Link>
          <div className="flex flex-wrap items-center gap-1 text-sm font-medium">
            <Link className="rounded-xl px-3 py-2 text-slate-600 hover:bg-white/60" href="/guides">
              Guides
            </Link>
            <Link className="rounded-xl px-3 py-2 text-slate-600 hover:bg-white/60" href="/blog">
              Blog
            </Link>
            <Link className="rounded-xl px-3 py-2 text-slate-600 hover:bg-white/60" href="/about">
              About
            </Link>
            <Link className="rounded-xl px-3 py-2 text-slate-600 hover:bg-white/60" href="/contact">
              Contact
            </Link>
          </div>
        </nav>

        <header className="glass-panel rounded-3xl p-6 sm:p-8">
          <p className="text-xs font-semibold uppercase tracking-wide text-indigo-700">
            Image convert • {p.from} → {p.to}
          </p>
          <h1 className="font-display mt-3 text-balance text-3xl font-extrabold tracking-tight text-slate-900 sm:text-4xl">
            {p.h1}
          </h1>
          <p className="mt-3 max-w-3xl text-pretty text-sm leading-relaxed text-slate-600 sm:text-base">
            {p.description}
          </p>
          <div className="mt-5 grid gap-3 text-sm text-slate-700 sm:grid-cols-3">
            <div className="rounded-2xl border border-white/60 bg-white/50 p-4 backdrop-blur">
              <p className="text-xs font-semibold uppercase tracking-wide text-slate-500">Input</p>
              <p className="mt-2 font-semibold">{p.from}</p>
              <p className="mt-1 text-xs text-slate-500">Common: {p.fromExts.join(", ")}</p>
            </div>
            <div className="rounded-2xl border border-white/60 bg-white/50 p-4 backdrop-blur">
              <p className="text-xs font-semibold uppercase tracking-wide text-slate-500">Output</p>
              <p className="mt-2 font-semibold">{p.to}</p>
              <p className="mt-1 text-xs text-slate-500">Preset: {p.toFormat}</p>
            </div>
            <div className="rounded-2xl border border-white/60 bg-white/50 p-4 backdrop-blur">
              <p className="text-xs font-semibold uppercase tracking-wide text-slate-500">Options</p>
              <p className="mt-2 font-semibold">Compress + resize</p>
              <p className="mt-1 text-xs text-slate-500">Quality + width/height</p>
            </div>
          </div>
        </header>

        <section className="w-full scroll-mt-8">
          <ConverterCard />
        </section>

        <section className="grid w-full gap-4 lg:grid-cols-2 lg:gap-5">
          <div className="min-w-0 rounded-2xl border border-white/55 bg-white/55 p-6 shadow-lg shadow-indigo-500/10 backdrop-blur">
            <h2 className="font-display text-xl font-bold tracking-tight text-slate-900">
              {p.from} to {p.to} converter (online)
            </h2>
            <div className="mt-3 space-y-3 text-sm leading-relaxed text-slate-600">
              {p.intro.map((t) => (
                <p key={t}>{t}</p>
              ))}
              <p>
                This page is designed to be crawlable and useful: it explains when to use {p.to}, how to compress an
                image, and how to resize during conversion.
              </p>
            </div>
          </div>

          <div className="min-w-0 rounded-2xl border border-white/55 bg-white/55 p-6 shadow-lg shadow-indigo-500/10 backdrop-blur">
            <h2 className="font-display text-xl font-bold tracking-tight text-slate-900">FAQ</h2>
            <div className="mt-4 space-y-4">
              {p.faq.map((item) => (
                <div key={item.q}>
                  <h3 className="text-sm font-semibold text-slate-900">{item.q}</h3>
                  <p className="mt-1 text-sm text-slate-600">{item.a}</p>
                </div>
              ))}
            </div>
          </div>
        </section>

        <footer className="glass-panel rounded-2xl px-5 py-7 text-sm text-slate-600 sm:px-6">
          <p className="max-w-4xl text-pretty leading-relaxed">
            Looking for more? Browse format guides, compression tips, and image optimization articles to improve website
            performance and SEO.
          </p>
          <div className="mt-5 flex flex-wrap items-center gap-4">
            <Link className="font-semibold text-indigo-700 underline decoration-indigo-200 underline-offset-[6px] hover:text-indigo-900" href="/guides">
              Guides
            </Link>
            <Link className="font-semibold text-indigo-700 underline decoration-indigo-200 underline-offset-[6px] hover:text-indigo-900" href="/blog">
              Blog
            </Link>
            <Link className="font-semibold text-indigo-700 underline decoration-indigo-200 underline-offset-[6px] hover:text-indigo-900" href="/privacy">
              Privacy
            </Link>
            <Link className="font-semibold text-indigo-700 underline decoration-indigo-200 underline-offset-[6px] hover:text-indigo-900" href="/terms">
              Terms
            </Link>
          </div>
        </footer>
      </div>
    </main>
  );
}

