import { headers } from 'next/headers' import { redirect } from 'next/navigation' import { getSession } from '@/lib/authActions' import RecoilRootWrapper from './RecoilWrapper' import { QcastProvider } from './QcastProvider' import SessionProvider from './SessionProvider' import GlobalDataProvider from './GlobalDataProvider' import Header from '@/components/header/Header' import QModal from '@/components/common/modal/QModal' import PopupManager from '@/components/common/popupManager/PopupManager' import './globals.css' import '../styles/style.scss' import '../styles/contents.scss' import Footer from '@/components/footer/Footer' import GlobalLoadingProvider from './GlobalLoadingProvider' /** * 어플리케이션 메타데이터 * 서버 컴포넌트에 한해서 개별로 설정할 수 있음 */ export const metadata = { title: 'HANASYS DESIGN', description: 'HANASYS DESIGN', } /** * 어플리케이션 전체 레이아웃 컴포넌트 * @param {*} param0 * @returns */ export default async function RootLayout({ children }) { const headersList = headers() const headerPathname = headersList.get('x-pathname') || '' const session = await getSession() console.log('session[layout]:', session) let sessionProps = {} if (session.isLoggedIn) { sessionProps = { userId: session.userId, saleStoreId: session.saleStoreId, name: session.name, mail: session.mail, tel: session.tel, storeId: session.storeId, userNm: session.userNm, userNmKana: session.userNmKana, category: session.category, telNo: session.telNo, fax: session.fax, email: session.email, storeLvl: session.storeLvl, groupId: session.groupId, pwdInitYn: session.pwdInitYn, custCd: session.custCd, isLoggedIn: session.isLoggedIn, builderNo: session.builderNo } } if (!headerPathname.includes('/login') && !session.isLoggedIn) { redirect('/login') } return ( {headerPathname === '/login' || headerPathname === '/join' ? ( {children} ) : (
{children}
)}
) }