import React, { lazy, Suspense } from 'react'; import { createBrowserRouter, Navigate } from 'react-router-dom'; import BasicLayout from '../layouts/BasicLayout'; import { AuthPageLoadingFallback, PageLoadingFallback } from '../components/AppLoadingSkeleton'; const Login = lazy(() => import('../pages/Login')); const Install = lazy(() => import('../pages/Install')); const Setup = lazy(() => import('../pages/Setup')); const Settings = lazy(() => import('../pages/Settings')); const OnlineDesktopUsers = lazy(() => import('../pages/OnlineDesktopUsers')); const DesktopExecutionTasks = lazy(() => import('../pages/DesktopExecutionTasks')); const MarketingEvents = lazy(() => import('../pages/MarketingEvents')); const ProductInformation = lazy(() => import('../pages/ProductInformation')); const PromotionModule = lazy(() => import('../pages/PromotionModule')); const OperationPlaceholder = lazy(() => import('../pages/OperationPlaceholder')); const DevelopmentStylePreview = lazy(() => import('../pages/DevelopmentStylePreview')); const ProductAnalysis = lazy(() => import('../pages/ProductAnalysis')); const OpsBIncentiveBoard = lazy(() => import('../pages/PlanningUpload/OpsBIncentiveBoard')); const ProductMonitoring = lazy(() => import('../pages/ProductMonitoring')); const ModularStockMonitor = lazy(() => import('../pages/ModularStockMonitor')); const MkhBomData = lazy(() => import('../pages/MkhBomData')); const lazyLoadingElement = ; const renderLazyComponent = (lazyView, props = {}, fallback = lazyLoadingElement) => { const LazyView = lazyView; return ( ); }; const HOME_URL = '/planning/dev-style-preview'; const router = createBrowserRouter([ { path: '/login', element: renderLazyComponent(Login, {}, ), }, { path: '/callback', element: renderLazyComponent(Login, {}, ), }, { path: '/setup', element: renderLazyComponent(Setup), }, { path: '/install', element: renderLazyComponent(Install), }, { path: '/', element: , children: [ { index: true, element: , }, { path: 'dashboard', element: , }, { path: 'channel', element: , }, { path: 'planning', element: , }, { path: 'planning/operation/marketing-events', element: , }, { path: 'planning/operation/marketing-events/activity-products', element: renderLazyComponent(MarketingEvents), }, { path: 'planning/operation/marketing-tools', element: , }, { path: 'planning/operation/product-information', element: renderLazyComponent(ProductInformation), }, { path: 'planning/operation/product-analysis', element: renderLazyComponent(ProductAnalysis), }, { path: 'planning/operation/promotion-module', element: renderLazyComponent(PromotionModule), }, { path: 'planning/operation/ops-b-incentive', element: renderLazyComponent(OpsBIncentiveBoard), }, { path: 'planning/operation/product-monitoring', element: renderLazyComponent(ProductMonitoring), }, { path: 'planning/operation/modular-stock-monitor', element: renderLazyComponent(ModularStockMonitor), }, { path: 'planning/operation/mkh-bom-data', element: renderLazyComponent(MkhBomData), }, { path: 'planning/operation/store-checkup', element: }, { path: 'planning/operation/review-analysis', element: }, { path: 'planning/operation/customer-service-checkup', element: }, { path: 'planning/operation/pricing-calculator', element: }, { path: 'planning/operation/desktop-client-download', element: }, { path: 'planning/operation/ai-buyer-show', element: }, { path: 'planning/operation/ai-seeding-video', element: }, { path: 'settings/desktop-client-releases', element: }, { path: 'planning/operation/:featureKey', element: renderLazyComponent(OperationPlaceholder), }, { path: 'planning/upload', element: , }, { path: 'planning/dev-style-preview', element: renderLazyComponent(DevelopmentStylePreview), }, { path: 'settings', element: renderLazyComponent(Settings), }, { path: 'settings/online-desktop-users', element: renderLazyComponent(OnlineDesktopUsers), }, { path: 'settings/desktop-execution-tasks', element: renderLazyComponent(DesktopExecutionTasks), }, { path: '*', element: , }, ], }, ]); export default router;