2025-08-08 01:49:00 +07:00

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