Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | 'use client'; import { ApolloProvider as ApolloProviderBase } from '@apollo/client/react'; import { SessionProvider } from 'next-auth/react'; import { NextIntlClientProvider } from 'next-intl'; import type { FC } from 'react'; import { useEffect } from 'react'; import { Provider as ReduxProvider, useDispatch } from 'react-redux'; import { apolloClient } from '@/lib/apollo/client'; import { store } from '@/lib/store'; import { setLocale } from '@/lib/store/global'; import type { ClientProvidersProps, Locale } from '@/types/common'; import { MetadataProvider } from './MetadataProvider'; import { MantineProviderWrapper } from './mantine/mantine'; const ClientProvidersInner: FC<ClientProvidersProps> = ({ children, messages, locale, }) => { const dispatch = useDispatch(); useEffect(() => { if (locale) { dispatch(setLocale(locale as Locale)); } }, [locale, dispatch]); const currentMessages = messages[locale] || messages.en; return ( <NextIntlClientProvider locale={locale} messages={currentMessages} timeZone="Europe/Budapest" > <MantineProviderWrapper> <MetadataProvider>{children}</MetadataProvider> </MantineProviderWrapper> </NextIntlClientProvider> ); }; export const ClientProviders: FC<ClientProvidersProps> = (props) => { return ( <SessionProvider> <ApolloProviderBase client={apolloClient}> <ReduxProvider store={store}> <ClientProvidersInner {...props} /> </ReduxProvider> </ApolloProviderBase> </SessionProvider> ); }; export default ClientProviders; |