[next.js] 헤더 및 서브헤더 분기 처리하기

Yeong·2025년 4월 18일
import type { Metadata } from "next";
import "../styles/globals.scss";

import { headers } from "next/headers";
import Header from "@/app/common/Header";
import SubHeader from "@/app/common/SubHeader";
import Footer2 from "@/app/common/Footer2";
import styles from "src/styles/common/Layout.module.scss";
import FloatingButton from "@/app/common/FloatingButton";
import BreadCrumbJsonLd from "@/components/common/BreadCrumbJsonLd";
import Breadcrumb2 from "@/components/common/Breadcrumb2";
import { getAllCodes } from "@/service/codes";
import { CodesProvider } from "@/context/common/codesContext";
import * as console from "node:console";

export const metadata: Metadata = {
  title: "Brand ",
  description: "Generated by create next app",
};
export const dynamic = "force-dynamic";

export default async function RootLayout({
  children,
}: Readonly<{
  children: React.ReactNode;
}>) {
  const codes = await getAllCodes();
  const headersList = await headers();
  const currentPath = headersList.get("next-url") || "";
  const isMain = currentPath === "/";

  return (
    <html lang="en">
      <body>
        {isMain ? <Header /> : <SubHeader />}
        <Breadcrumb2 />
        <BreadCrumbJsonLd />
        <main className={`${styles.main} ${styles.mainContent}`}>
          <CodesProvider initialCodes={codes}>{children}</CodesProvider>
        </main>
        <FloatingButton />
        <Footer2 />
      </body>
    </html>
  );
}

0개의 댓글