import { RouteError } from '@/common/components/atoms/RouteError/RouteError'; import { RouteErrorWithProviders } from '@/common/components/atoms/RouteError/RouteErrorWithProviders'; import { env } from '@/common/env/env'; import { queryClient } from '@/lib/react-query/query-client'; import { customerQueryKeys } from '@/domains/customer/query-keys'; import { AuthenticatedLayout } from '@/domains/auth/components/AuthenticatedLayout'; import { authenticatedLayoutLoader } from '@/domains/auth/components/AuthenticatedLayout/AuthenticatedLayout.loader'; import { UnauthenticatedLayout } from '@/domains/auth/components/UnauthenticatedLayout'; import { unauthenticatedLayoutLoader } from '@/domains/auth/components/UnauthenticatedLayout/UnauthenticatedLayout.loader'; import { MerchantMonitoringLayout } from '@/domains/business-reports/components/MerchantMonitoringLayout/MerchantMonitoringLayout'; import { CaseManagement } from '@/pages/CaseManagement/CaseManagement.page'; import { Document } from '@/pages/Document/Document.page'; import { entitiesLoader } from '@/pages/Entities/Entities.loader'; import { Entities } from '@/pages/Entities/Entities.page'; import { entityLoader } from '@/pages/Entity/Entity.loader'; import { Entity } from '@/pages/Entity/Entity.page'; import { Home } from '@/pages/Home/Home.page'; import { Locale } from '@/pages/Locale/Locale.page'; import { MerchantMonitoring } from '@/pages/MerchantMonitoring/MerchantMonitoring.page'; import { MerchantMonitoringBusinessReport } from '@/pages/MerchantMonitoringBusinessReport/MerchantMonitoringBusinessReport.page'; import { MerchantMonitoringCreateCheckPage } from '@/pages/MerchantMonitoringCreateCheck/MerchantMonitoringCreateCheck.page'; import { MerchantMonitoringUploadMultiplePage } from '@/pages/MerchantMonitoringUploadMultiple/MerchantMonitoringUploadMultiple.page'; import { NotFoundRedirectWithProviders } from '@/pages/NotFound/NotFoundRedirectWithProviders'; import { RootError } from '@/pages/Root/Root.error'; import { rootLoader } from '@/pages/Root/Root.loader'; import { Root } from '@/pages/Root/Root.page'; import { SignIn } from '@/pages/SignIn/SignIn.page'; import { TransactionMonitoring } from '@/pages/TransactionMonitoring/TransactionMonitoring'; import { TransactionMonitoringAlerts } from '@/pages/TransactionMonitoringAlerts/TransactionMonitoringAlerts.page'; import { TransactionMonitoringAlertsAnalysisPage } from '@/pages/TransactionMonitoringAlertsAnalysis/TransactionMonitoringAlertsAnalysis.page'; import type { FunctionComponent } from 'react'; import { createBrowserRouter, RouterProvider } from 'react-router-dom'; import { KybAndOwnership } from '@/pages/KybAndOwnership/KybAndOwnership.page'; import { KybAndOwnershipAssessmentPage } from '@/pages/KybAndOwnershipAssessmentPage'; import { IdentityVerification } from '@/pages/IdentityVerification/IdentityVerification.page'; import { IdentityVerificationAssessmentPage } from '@/pages/IdentityVerificationAssessment/IdentityVerificationAssessment.page'; const router = createBrowserRouter([ { path: '/*', element: , loader: rootLoader, errorElement: , }, { path: '/', element: , loader: rootLoader, errorElement: , children: [ { element: , loader: unauthenticatedLayoutLoader, errorElement: , children: [ { path: '/:locale', element: , errorElement: , children: [ ...(env.VITE_AUTH_ENABLED ? [ { path: '/:locale/auth/sign-in', element: , errorElement: , }, ] : []), ], }, ], }, { element: , loader: authenticatedLayoutLoader, errorElement: , children: [ { path: '/:locale', element: , errorElement: , children: [ { element: , errorElement: , children: [ { path: '/:locale/merchant-monitoring', element: , errorElement: , }, { path: '/:locale/merchant-monitoring/:businessReportId', element: , errorElement: , }, { path: '/:locale/merchant-monitoring/create-check', element: , errorElement: , }, { path: '/:locale/merchant-monitoring/upload-multiple-merchants', element: , errorElement: , }, ], }, { loader: async () => { await queryClient.ensureQueryData(customerQueryKeys.getCurrent()); return true; }, errorElement: , children: [ { path: '/:locale/kyb-and-ownership', element: , errorElement: , }, { path: '/:locale/kyb-and-ownership/:assessmentId', element: , errorElement: , }, ], }, // { // loader: async () => { // await queryClient.ensureQueryData(customerQueryKeys.getCurrent()); // return true; // }, // errorElement: , // children: [ // { // path: '/:locale/identity-verification', // element: , // errorElement: , // }, // { // path: '/:locale/identity-verification/:checkId', // element: , // errorElement: , // }, // ], // }, { path: '/:locale/case-management', element: , errorElement: , children: [ { path: '/:locale/case-management/entities', element: , loader: entitiesLoader, errorElement: , children: [ { path: '/:locale/case-management/entities/:entityId', element: , loader: entityLoader, errorElement: , }, ], }, ], }, // { // path: '/:locale/profiles', // element: , // errorElement: , // children: [ // { // path: '/:locale/profiles/individuals', // element: , // errorElement: , // }, // ], // }, { path: '/:locale/transaction-monitoring', element: , errorElement: , children: [ { path: '/:locale/transaction-monitoring/alerts', element: , errorElement: , children: [ { path: '/:locale/transaction-monitoring/alerts/:alertId', element: , errorElement: , }, ], }, ], }, { path: '/:locale/home', element: , errorElement: , }, ], }, ], }, { element: , loader: authenticatedLayoutLoader, errorElement: , path: '/:locale/case-management/entities/:entityId/document/:documentId', }, ], }, ]); export const Router: FunctionComponent = () => { return ; };