Portal/rsconcept/frontend/src/app/GlobalProviders.tsx

46 lines
1.2 KiB
TypeScript
Raw Normal View History

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}>
<GlobalOssState>
2025-01-21 12:00:09 +03:00
<ReactQueryDevtools initialIsOpen={false} />
2024-06-07 20:17:03 +03:00
{children}
</GlobalOssState>
2025-01-21 12:00:09 +03:00
</QueryClientProvider>
2024-06-07 20:17:03 +03:00
</IntlProvider>
</ErrorBoundary>);
}
export default GlobalProviders;