2025-08-05 12:35:40 +07:00

45 lines
1.3 KiB
TypeScript

// Type Imports
import type { ChildrenType, Direction } from '@core/types'
// Context Imports
import { VerticalNavProvider } from '@menu/contexts/verticalNavContext'
import { SettingsProvider } from '@core/contexts/settingsContext'
import ThemeProvider from '@components/theme'
import ReduxProvider from '@/redux-store/ReduxProvider'
// Styled Component Imports
import AppReactToastify from '@/libs/styles/AppReactToastify'
// Util Imports
import { getMode, getSettingsFromCookie, getSystemMode } from '@core/utils/serverHelpers'
import { AuthProvider } from '../contexts/authContext'
type Props = ChildrenType & {
direction: Direction
}
const Providers = async (props: Props) => {
// Props
const { children, direction } = props
// Vars
const mode = await getMode()
const settingsCookie = await getSettingsFromCookie()
const systemMode = await getSystemMode()
return (
<AuthProvider>
<VerticalNavProvider>
<SettingsProvider settingsCookie={settingsCookie} mode={mode}>
<ThemeProvider direction={direction} systemMode={systemMode}>
<ReduxProvider>{children}</ReduxProvider>
<AppReactToastify direction={direction} hideProgressBar />
</ThemeProvider>
</SettingsProvider>
</VerticalNavProvider>
</AuthProvider>
)
}
export default Providers