"use client";

import { usePathname } from "next/navigation";

import { SalesBanner } from "@/components/layout/sales-banner";
import { SiteFooter } from "@/components/layout/site-footer";
import { FloatingCta } from "@/components/layout/floating-cta";
import { SiteHeader } from "@/components/layout/site-header";

const MINIMAL_PATHS = ["/checkout", "/checkout/success", "/checkout/failure"];

type Props = {
  children: React.ReactNode;
};

export function SiteChrome({ children }: Props) {
  const pathname = usePathname();
  const minimal = MINIMAL_PATHS.some(
    (p) => pathname === p || pathname.startsWith(`${p}/`),
  );

  if (minimal) {
    return (
      <div className="relative flex min-h-screen flex-col">
        <SiteHeader />
        <main id="main-content" className="relative flex-1">
          {children}
        </main>
        <SiteFooter />
      </div>
    );
  }

  return (
    <div className="relative flex min-h-screen flex-col grain-soft">
      <SalesBanner />
      <SiteHeader />
      <main id="main-content" className="relative flex-1">
        {children}
      </main>
      <SiteFooter />
      <FloatingCta />
    </div>
  );
}
