@@ -2,18 +2,18 @@ import RTLProvider from '@/components/common/RTLProvider';
22import { defaultTheme , globalStyles , persianTheme } from '@/config/theme' ;
33import { Locale , languages } from '@/navigation' ;
44import { ApolloProvider , AppProvider } from '@/providers' ;
5+ import I18nProvider from '@/providers/I18nProvider' ;
56import {
67 CssBaseline ,
78 GlobalStyles ,
89 ThemeOptions ,
910 ThemeProvider ,
1011} from '@mui/material' ;
1112import type { Metadata } from 'next' ;
12- import { NextIntlClientProvider , useMessages } from 'next-intl' ;
13+ import { headers } from 'next/headers' ;
14+ import { userAgent } from 'next/server' ;
1315import { PropsWithChildren } from 'react' ;
1416
15- export type WithChildren < T = unknown > = T & { children : React . ReactNode } ;
16-
1717export type LocaleLayoutParams = { params : { locale : Locale } } ;
1818type LocaleLayoutProperties = PropsWithChildren < LocaleLayoutParams > ;
1919
@@ -22,30 +22,30 @@ export const metadata: Metadata = {
2222 description : 'Shop app' ,
2323} ;
2424
25- export default function LocaleLayout ( {
25+ export default async function LocaleLayout ( {
2626 children,
2727 params : { locale } ,
28- } : WithChildren < LocaleLayoutProperties > ) {
29- const messages = useMessages ( ) ;
28+ } : PropsWithChildren < LocaleLayoutProperties > ) {
29+ const reqUserAgent = userAgent ( { headers : headers ( ) } ) ;
3030
3131 const themes : Record < Locale , ThemeOptions > = {
3232 en : defaultTheme ,
3333 fa : persianTheme ,
3434 } ;
3535
3636 return (
37- < html lang = { locale } dir = { languages ?. [ locale ] ?. direction ?? 'ltr' } >
37+ < html lang = { locale } dir = { languages ?. [ locale ] ?. direction } >
3838 < body >
3939 < ThemeProvider theme = { themes [ locale ] ?? defaultTheme } >
40- < CssBaseline / >
41- < GlobalStyles styles = { globalStyles } />
42- < RTLProvider >
43- < NextIntlClientProvider messages = { messages } locale = { locale } >
44- < AppProvider >
40+ < AppProvider userAgent = { reqUserAgent } >
41+ < CssBaseline />
42+ < GlobalStyles styles = { globalStyles } / >
43+ < RTLProvider >
44+ < I18nProvider locale = { locale } >
4545 < ApolloProvider > { children } </ ApolloProvider >
46- </ AppProvider >
47- </ NextIntlClientProvider >
48- </ RTLProvider >
46+ </ I18nProvider >
47+ </ RTLProvider >
48+ </ AppProvider >
4949 </ ThemeProvider >
5050 </ body >
5151 </ html >
0 commit comments