45 lines
1.4 KiB
TypeScript
45 lines
1.4 KiB
TypeScript
/**
|
|
* ➡️ 경로 : 모든 페이지
|
|
*
|
|
* 📄 Root Layout
|
|
* 루트 레이아웃 컴포넌트
|
|
*
|
|
* - 메타데이터 설정 (title, description, keywords, OpenGraph)
|
|
* - App 컴포넌트 렌더링 및 전체 앱 구조 정의
|
|
* - SEO 및 소셜 미디어 공유를 위한 메타 태그 관리
|
|
* - 디지털 하수관로 시스템의 기본 레이아웃 제공
|
|
* - Next.js Metadata API를 통한 동적 메타데이터 설정
|
|
* - 앱 전체의 공통 스타일 및 스크립트 적용
|
|
*/
|
|
import type { Metadata } from "next";
|
|
import "@fontsource-variable/noto-sans-kr";
|
|
import { cookies } from "next/headers";
|
|
import { AppProvider } from "./providers";
|
|
import "../src/app/styles/base.css";
|
|
import "../src/app/styles/components.css";
|
|
import "../src/app/styles/grid-ellipsis.css";
|
|
|
|
export const metadata: Metadata = {
|
|
title: "유역하수도통합플랫폼 Hasuon",
|
|
description: "디지털 하수관로 시스템입니다",
|
|
keywords: ["하수관로"],
|
|
openGraph: {
|
|
title: "디지털 하수관로",
|
|
description: "디지털 하수관로 시스템입니다"
|
|
}
|
|
};
|
|
|
|
export default async function RootLayout({
|
|
children,
|
|
}: Readonly<{ children: React.ReactNode }>) {
|
|
const theme = (await cookies()).get("site-theme-key");
|
|
|
|
return (
|
|
<html lang="ko" data-theme={theme?.value}>
|
|
<body data-sn-grid-ellipsis="true">
|
|
<AppProvider>{children}</AppProvider>
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|