import type { Metadata } from "next";
import { cookies } from "next/headers";
import { Inter, Plus_Jakarta_Sans } from "next/font/google";
import "./globals.css";
import SmoothScroll from "@/components/SmoothScroll";
import { readContent } from "@/lib/contentStore";
import { DEFAULT_THEME } from "@/lib/contentTypes";
import { buildThemeVars } from "@/lib/themeCss";

const jakarta = Plus_Jakarta_Sans({
  variable: "--font-jakarta",
  subsets: ["latin"],
  weight: ["300", "400", "500", "600", "700", "800"],
  display: "swap",
});

const inter = Inter({
  variable: "--font-inter",
  subsets: ["latin"],
  weight: ["300", "400", "500"],
  display: "swap",
});

export const metadata: Metadata = {
  title: "Velo Teknologi — Solution · Innovation · Inspiration",
  description:
    "Perusahaan layanan IT yang tumbuh cepat — melayani siklus penuh pengembangan website, aplikasi mobile, dan sistem informasi untuk sektor privat maupun pemerintah.",
};

export default async function RootLayout({
  children,
}: LayoutProps<"/">) {
  // Preferensi tema dari cookie → class dirender server: tanpa skrip,
  // tanpa warning React, dan tanpa kedip saat halaman dimuat.
  const cookieStore = await cookies();
  const isLight = cookieStore.get("velo-theme")?.value === "light";

  // Warna kustom dari CMS → CSS variable override (di-render server agar tanpa flash)
  const { theme } = await readContent();
  const themeVars = buildThemeVars(theme, DEFAULT_THEME.dark, DEFAULT_THEME.light);

  return (
    <html
      lang="id"
      suppressHydrationWarning
      className={`${jakarta.variable} ${inter.variable} h-full antialiased${isLight ? " light" : ""}`}
    >
      <head>
        {themeVars && <style dangerouslySetInnerHTML={{ __html: themeVars }} />}
      </head>
      <body className="min-h-full flex flex-col bg-ink text-fg">
        <SmoothScroll>{children}</SmoothScroll>
      </body>
    </html>
  );
}
