2023-09-29 14:29:22 +02:00
|
|
|
'use client';
|
2023-12-10 07:18:47 +01:00
|
|
|
import { useEffect, useState } from 'react';
|
2023-09-29 14:29:22 +02:00
|
|
|
import { IntlProvider } from 'react-intl';
|
|
|
|
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
|
|
|
|
import { ReactBasicsProvider } from 'react-basics';
|
|
|
|
import ErrorBoundary from 'components/common/ErrorBoundary';
|
2023-12-10 06:30:57 +01:00
|
|
|
import SettingsContext from 'app/(main)/settings/SettingsContext';
|
2023-09-29 14:29:22 +02:00
|
|
|
import useLocale from 'components/hooks/useLocale';
|
|
|
|
import 'chartjs-adapter-date-fns';
|
|
|
|
|
|
|
|
const client = new QueryClient({
|
|
|
|
defaultOptions: {
|
|
|
|
queries: {
|
|
|
|
retry: false,
|
|
|
|
refetchOnWindowFocus: false,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
});
|
|
|
|
|
|
|
|
function MessagesProvider({ children }) {
|
|
|
|
const { locale, messages } = useLocale();
|
|
|
|
return (
|
|
|
|
<IntlProvider locale={locale} messages={messages[locale]} onError={() => null}>
|
|
|
|
{children}
|
|
|
|
</IntlProvider>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2023-12-10 06:30:57 +01:00
|
|
|
function SettingsProvider({ children }) {
|
2023-12-10 07:18:47 +01:00
|
|
|
const [config, setConfig] = useState({});
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
const hostUrl = process.env.hostUrl || window?.location.origin;
|
|
|
|
|
|
|
|
setConfig({
|
|
|
|
shareUrl: hostUrl,
|
|
|
|
trackingCodeUrl: hostUrl,
|
2023-12-13 06:23:12 +01:00
|
|
|
websitesUrl: '/websites',
|
|
|
|
settingsPath: '/settings/websites',
|
|
|
|
websitesPath: `/websites`,
|
2023-12-10 07:18:47 +01:00
|
|
|
});
|
|
|
|
}, []);
|
2023-12-10 06:30:57 +01:00
|
|
|
|
|
|
|
return <SettingsContext.Provider value={config}>{children}</SettingsContext.Provider>;
|
|
|
|
}
|
|
|
|
|
2023-09-29 14:29:22 +02:00
|
|
|
export function Providers({ children }) {
|
|
|
|
return (
|
|
|
|
<MessagesProvider>
|
2023-12-10 06:30:57 +01:00
|
|
|
<SettingsProvider>
|
|
|
|
<QueryClientProvider client={client}>
|
|
|
|
<ReactBasicsProvider>
|
|
|
|
<ErrorBoundary>{children}</ErrorBoundary>
|
|
|
|
</ReactBasicsProvider>
|
|
|
|
</QueryClientProvider>
|
|
|
|
</SettingsProvider>
|
2023-09-29 14:29:22 +02:00
|
|
|
</MessagesProvider>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
export default Providers;
|