# All files / src/app providers.tsx

100% Statements 41/41
100% Branches 4/4
100% Functions 3/3
100% Lines 41/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
    421x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    1x
    3x
    3x
    3x
    3x
    3x
    1x
    11x
    11x
    5x
    11x
    11x
    11x
    1x
    1x
    12x
    12x
    12x
    12x
    12x
    12x
    12x
    12x
    12x
    12x
    12x
    12x
    12x
    12x
    12x
     '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>
      );
    }