# All files / src/app providers.tsx

0% Statements 0/41
0% Branches 0/1
0% Functions 0/1
0% Lines 0/41

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

     'use client';

    import { ErrorBoundary } from 'react-error-boundary';
    import { Provider } from 'react-redux';
    import { Toaster } from '@/components/ui/sonner';
    import { store } from '@/store';
    import { ErrorFallback } from '@/components/error/ErrorFallback';
    import { NavigationProvider } from '@/components/layout/navigation/NavigationProvider';
    import { useEffect } from 'react';
    import { loadStorageConfig } from '@/lib/storage';

    const logErrorToConsole = (error: Error, info: { componentStack?: string }) => {
      console.error('Application Error:', error);
      if (info.componentStack) {
        console.error('Component Stack:', info.componentStack);
      }
    };

    function StorageInitializer() {
      useEffect(() => {
        loadStorageConfig();
      }, []);
      return null;
    }

    export function Providers({ children }: { children: React.ReactNode }) {
      return (
        <Provider store={store}>
          <ErrorBoundary
            FallbackComponent={ErrorFallback}
            onError={logErrorToConsole}
          >
            <NavigationProvider>
              <StorageInitializer />
              {children}
              <Toaster />
            </NavigationProvider>
          </ErrorBoundary>
        </Provider>
      );
    }