/** * @ai-summary React 19 Suspense wrapper components for different UI sections * @ai-context Reusable Suspense boundaries with appropriate fallbacks */ import React, { Suspense } from 'react'; import { VehicleListSkeleton } from '../shared-minimal/components/skeletons/VehicleListSkeleton'; import { VehicleCardSkeleton } from '../shared-minimal/components/skeletons/VehicleCardSkeleton'; import { MobileVehiclesSkeleton } from '../shared-minimal/components/skeletons/MobileVehiclesSkeleton'; import { Box, Skeleton } from '@mui/material'; interface SuspenseWrapperProps { children: React.ReactNode; } // Vehicle list suspense for desktop export const VehicleListSuspense: React.FC = ({ children }) => ( }> {children} ); // Individual vehicle card suspense export const VehicleCardSuspense: React.FC = ({ children }) => ( }> {children} ); // Mobile vehicles screen suspense export const MobileVehiclesSuspense: React.FC = ({ children }) => ( }> {children} ); // Authentication state suspense export const AuthSuspense: React.FC = ({ children }) => (
}> {children}
); // Route-level suspense for navigation transitions export const RouteSuspense: React.FC = ({ children }) => (
}> {children}
); // Form suspense for dynamic form loading export const FormSuspense: React.FC = ({ children }) => ( {Array.from({ length: 4 }).map((_, index) => ( ))} }> {children} );