61 lines
1.6 KiB
TypeScript
61 lines
1.6 KiB
TypeScript
// Next Imports
|
|
import { headers } from 'next/headers'
|
|
|
|
// MUI Imports
|
|
import InitColorSchemeScript from '@mui/material/InitColorSchemeScript'
|
|
|
|
// Third-party Imports
|
|
import 'react-perfect-scrollbar/dist/css/styles.css'
|
|
|
|
// Type Imports
|
|
import type { ChildrenType } from '@core/types'
|
|
import type { Locale } from '@configs/i18n'
|
|
|
|
// Component Imports
|
|
|
|
// HOC Imports
|
|
import TranslationWrapper from '@/hocs/TranslationWrapper'
|
|
|
|
// Config Imports
|
|
import { i18n } from '@configs/i18n'
|
|
|
|
// Util Imports
|
|
import { getSystemMode } from '@core/utils/serverHelpers'
|
|
|
|
// Style Imports
|
|
import '@/app/globals.css'
|
|
|
|
// Generated Icon CSS Imports
|
|
import '@assets/iconify-icons/generated-icons.css'
|
|
import { ReactQueryProvider } from '../../providers/ReactQueryProvider'
|
|
|
|
export const metadata = {
|
|
title: 'APSKEL',
|
|
description:
|
|
'Apsekel'
|
|
}
|
|
|
|
const RootLayout = async (props: ChildrenType & { params: Promise<{ lang: Locale }> }) => {
|
|
const params = await props.params
|
|
|
|
const { children } = props
|
|
|
|
// Vars
|
|
const headersList = await headers()
|
|
const systemMode = await getSystemMode()
|
|
const direction = i18n.langDirection[params.lang]
|
|
|
|
return (
|
|
<TranslationWrapper headersList={headersList} lang={params.lang}>
|
|
<html id='__next' lang={params.lang} dir={direction} suppressHydrationWarning>
|
|
<body className='flex is-full min-bs-full flex-auto flex-col'>
|
|
<InitColorSchemeScript attribute='data' defaultMode={systemMode} />
|
|
<ReactQueryProvider>{children}</ReactQueryProvider>
|
|
</body>
|
|
</html>
|
|
</TranslationWrapper>
|
|
)
|
|
}
|
|
|
|
export default RootLayout
|