2024-06-07 20:17:03 +03:00
|
|
|
'use client';
|
|
|
|
|
2025-01-21 12:00:09 +03:00
|
|
|
import { QueryClientProvider } from '@tanstack/react-query';
|
|
|
|
import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
|
2024-06-07 20:17:03 +03:00
|
|
|
import { ErrorBoundary } from 'react-error-boundary';
|
|
|
|
import { IntlProvider } from 'react-intl';
|
|
|
|
|
2025-01-21 12:00:09 +03:00
|
|
|
import { queryClient } from '@/backend/queryClient';
|
2025-01-23 19:41:31 +03:00
|
|
|
import { GlobalOssState } from '@/app/GlobalOssContext';
|
2024-06-07 20:17:03 +03:00
|
|
|
|
|
|
|
import ErrorFallback from './ErrorFallback';
|
|
|
|
|
|
|
|
const resetState = () => {
|
|
|
|
console.log('Resetting state after error fallback');
|
|
|
|
};
|
|
|
|
|
|
|
|
const logError = (error: Error, info: { componentStack?: string | null | undefined }) => {
|
|
|
|
console.log('Error fallback: ' + error.message);
|
|
|
|
if (info.componentStack) {
|
|
|
|
console.log('Component stack: ' + info.componentStack);
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
// prettier-ignore
|
2024-09-19 17:48:48 +03:00
|
|
|
function GlobalProviders({ children }: React.PropsWithChildren) {
|
2024-06-07 20:17:03 +03:00
|
|
|
return (
|
|
|
|
<ErrorBoundary
|
|
|
|
FallbackComponent={ErrorFallback}
|
|
|
|
onReset={resetState}
|
|
|
|
onError={logError}
|
|
|
|
>
|
|
|
|
<IntlProvider locale='ru' defaultLocale='ru'>
|
2025-01-21 12:00:09 +03:00
|
|
|
<QueryClientProvider client={queryClient}>
|
2024-08-16 12:44:09 +03:00
|
|
|
<GlobalOssState>
|
2025-01-15 22:16:06 +03:00
|
|
|
|
2025-01-21 12:00:09 +03:00
|
|
|
<ReactQueryDevtools initialIsOpen={false} />
|
2024-06-07 20:17:03 +03:00
|
|
|
{children}
|
2024-08-16 12:44:09 +03:00
|
|
|
|
|
|
|
</GlobalOssState>
|
2025-01-21 12:00:09 +03:00
|
|
|
</QueryClientProvider>
|
2024-06-07 20:17:03 +03:00
|
|
|
</IntlProvider>
|
|
|
|
</ErrorBoundary>);
|
|
|
|
}
|
|
|
|
|
|
|
|
export default GlobalProviders;
|