Files
auto-trade/app/layout.tsx

88 lines
2.5 KiB
TypeScript
Raw Permalink Normal View History

/**
* @file app/layout.tsx
* @description (RootLayout)
* @remarks
* - [] Infrastructure/Layout
* - [] (Font/CSS), (Provider), (Manager)
* - [ ] Providers -> Children
* - [ ] globals.css, theme-provider.tsx
*/
2026-02-03 10:51:22 +09:00
import type { Metadata } from "next";
2026-03-12 09:26:27 +09:00
import { Geist_Mono, Gowun_Dodum, Noto_Sans_KR } from "next/font/google";
import { QueryProvider } from "@/providers/query-provider";
import { ThemeProvider } from "@/components/theme-provider";
import { SessionManager } from "@/features/auth/components/session-manager";
2026-02-13 16:12:08 +09:00
import { GlobalAlertModal } from "@/features/layout/components/GlobalAlertModal";
2026-02-10 11:16:39 +09:00
import { Toaster } from "sonner";
2026-02-03 10:51:22 +09:00
import "./globals.css";
2026-03-12 09:26:27 +09:00
const gowunDodum = Gowun_Dodum({
weight: "400",
variable: "--font-gowun-heading",
display: "swap",
preload: false,
2026-02-03 10:51:22 +09:00
});
2026-03-12 09:26:27 +09:00
const notoSansKr = Noto_Sans_KR({
weight: ["400", "500", "700"],
variable: "--font-noto-sans-kr",
display: "swap",
preload: false,
2026-02-03 10:51:22 +09:00
});
2026-03-12 09:26:27 +09:00
const geistMono = Geist_Mono({
variable: "--font-geist-mono",
subsets: ["latin"],
});
2026-02-03 10:51:22 +09:00
export const metadata: Metadata = {
title: "JOORIN-E (주린이) - 감이 아닌 전략으로 시작하는 자동매매",
2026-02-11 14:06:06 +09:00
description:
"주린이를 위한 자동매매 파트너 JOORIN-E. 손실 방어 규칙, 데이터 신호 분석, 실시간 자동 실행으로 초보의 첫 수익 루틴을 만듭니다.",
2026-02-03 10:51:22 +09:00
};
/**
* RootLayout
* @param children
* @returns HTML Provider
* @see theme-provider.tsx -
* @see session-manager.tsx -
*/
2026-02-03 10:51:22 +09:00
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
2026-03-12 09:26:27 +09:00
<html
lang="en"
className="scroll-smooth"
data-scroll-behavior="smooth"
suppressHydrationWarning
>
2026-02-03 10:51:22 +09:00
<body
2026-03-12 09:26:27 +09:00
className={`${notoSansKr.variable} ${geistMono.variable} ${gowunDodum.variable} font-sans antialiased`}
2026-02-03 10:51:22 +09:00
>
<ThemeProvider
attribute="class"
defaultTheme="system"
enableSystem
disableTransitionOnChange
>
<SessionManager />
2026-02-13 16:12:08 +09:00
<GlobalAlertModal />
<QueryProvider>{children}</QueryProvider>
2026-02-10 11:16:39 +09:00
<Toaster
richColors
position="top-right"
toastOptions={{
duration: 4000,
}}
/>
</ThemeProvider>
2026-02-03 10:51:22 +09:00
</body>
</html>
);
}