95 lines
2.7 KiB
JavaScript
95 lines
2.7 KiB
JavaScript
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 (
|
|
<RecoilRootWrapper>
|
|
<GlobalDataProvider>
|
|
<html lang="en">
|
|
<body>
|
|
{headerPathname === '/login' || headerPathname === '/join' ? (
|
|
<QcastProvider>{children}</QcastProvider>
|
|
) : (
|
|
<QcastProvider>
|
|
<GlobalLoadingProvider />
|
|
<div className="wrap">
|
|
<Header userSession={sessionProps} />
|
|
<div className="content">
|
|
<SessionProvider useSession={sessionProps}>{children}</SessionProvider>
|
|
</div>
|
|
<Footer />
|
|
</div>
|
|
<QModal />
|
|
<PopupManager />
|
|
</QcastProvider>
|
|
)}
|
|
</body>
|
|
</html>
|
|
</GlobalDataProvider>
|
|
</RecoilRootWrapper>
|
|
)
|
|
}
|