Skip to content
Snippets Groups Projects
routes.tsx 1.79 KiB
Newer Older
  • Learn to ignore specific revisions
  • Matthias Feyll's avatar
    Matthias Feyll committed
    import { BasicLayout } from "@layout/basic.layout";
    import { ProtectedLayout } from "@layout/protected.layout/protected.layout";
    
    Matthias Feyll's avatar
    Matthias Feyll committed
    import DelayedRender, { SplashScreen } from "@utils/loading-fallback";
    
    Matthias Feyll's avatar
    Matthias Feyll committed
    import { createBrowserRouter, createRoutesFromElements, Navigate, Route } from "react-router-dom";
    
    
    export const DEVICE_URL = '/device/';
    export const LOGIN_URL = '/login';
    
    
    // Lazy load components
    const DeviceView = lazy(() => import('./components/devices/view/device.view'));
    const LoginLayout = lazy(() => import('./components/login/layouts/login.layout'));
    
    
    export const router = createBrowserRouter(
        createRoutesFromElements(
            <Route element={<BasicLayout />}>
    
    Matthias Feyll's avatar
    Matthias Feyll committed
                        <Suspense fallback={null}>
                            <DelayedRender>
                                <LoginLayout />
                            </DelayedRender>
    
                <Route element={<ProtectedLayout />}>
    
    Matthias Feyll's avatar
    Matthias Feyll committed
                            <DelayedRender
                                loading={{
                                    minimumLoadingTime: 1000,
                                    component: SplashScreen
                                }}
                            >
                                <Suspense fallback={null}>
                                    <DeviceView />
                                </Suspense>
                            </DelayedRender>
    
                        }
                    />
                    <Route
                        path="/"
                        element={<Navigate to={DEVICE_URL} replace={true} />}
                    />
    
    Matthias Feyll's avatar
    Matthias Feyll committed
            </Route >