diff --git a/packages/manager/apps/hpc-vmware-managed-vcd/public/translations/dashboard/Messages_en_GB.json b/packages/manager/apps/hpc-vmware-managed-vcd/public/translations/dashboard/Messages_en_GB.json index 8a123beb94a1..b7c9c76da97d 100644 --- a/packages/manager/apps/hpc-vmware-managed-vcd/public/translations/dashboard/Messages_en_GB.json +++ b/packages/manager/apps/hpc-vmware-managed-vcd/public/translations/dashboard/Messages_en_GB.json @@ -17,7 +17,7 @@ "managed_vcd_dashboard_service_management": "Service management", "managed_vcd_dashboard_mailing_list": "Mailing list", "managed_vcd_dashboard_service_renew": "Renewal", - "managed_vcd_dashboard_service_cancellation": "Close service", + "managed_vcd_dashboard_service_cancellation": "Cancel the service", "managed_vcd_dashboard_password": "Password", "managed_vcd_dashboard_password_renew": "Renew the admin password", "managed_vcd_dashboard_password_tooltip": "If you would like to change your admin password, please contact support", diff --git a/packages/manager/apps/hpc-vmware-managed-vcd/src/App.tsx b/packages/manager/apps/hpc-vmware-managed-vcd/src/App.tsx index 6e36769594e4..b013cc1f7ddb 100644 --- a/packages/manager/apps/hpc-vmware-managed-vcd/src/App.tsx +++ b/packages/manager/apps/hpc-vmware-managed-vcd/src/App.tsx @@ -1,9 +1,14 @@ -import React from 'react'; +import React, { Suspense } from 'react'; import { QueryClientProvider, QueryClient } from '@tanstack/react-query'; import { ReactQueryDevtools } from '@tanstack/react-query-devtools'; -import { RouterProvider, createHashRouter } from 'react-router-dom'; -import { Routes } from './routes/routes'; +import { + RouterProvider, + createHashRouter, + createRoutesFromElements, +} from 'react-router-dom'; +import Routes from '@/routes/routes'; import { MessageContextProvider } from './context/Message.context'; +import Loading from './components/loading/Loading.component'; const queryClient = new QueryClient({ defaultOptions: { @@ -14,12 +19,14 @@ const queryClient = new QueryClient({ }); function App() { - const router = createHashRouter(Routes); + const routes = createHashRouter(createRoutesFromElements(Routes)); return ( - + }> + + diff --git a/packages/manager/apps/hpc-vmware-managed-vcd/src/components/tiles/datacentre-general-information-tile/DatacentreGeneralInformationTile.spec.tsx b/packages/manager/apps/hpc-vmware-managed-vcd/src/components/tiles/datacentre-general-information-tile/DatacentreGeneralInformationTile.spec.tsx index 64caeda35f5f..065798021a0c 100644 --- a/packages/manager/apps/hpc-vmware-managed-vcd/src/components/tiles/datacentre-general-information-tile/DatacentreGeneralInformationTile.spec.tsx +++ b/packages/manager/apps/hpc-vmware-managed-vcd/src/components/tiles/datacentre-general-information-tile/DatacentreGeneralInformationTile.spec.tsx @@ -24,6 +24,16 @@ vi.mock('@ovh-ux/manager-react-shell-client', async (importOriginal) => { }; }); +vi.mock('react-router-dom', async (importOriginal) => { + const module: typeof import('react-router-dom') = await importOriginal(); + return { + ...module, + useNavigate: () => vi.fn(), + useParams: () => ({ id: 'id' }), + Route: module.Route, + }; +}); + const queryClient = new QueryClient({ defaultOptions: { queries: { @@ -35,11 +45,6 @@ const queryClient = new QueryClient({ }, }); -vi.mock('react-router-dom', () => ({ - useNavigate: () => ({ navigate: vi.fn() }), - useParams: () => ({ id: 'id' }), -})); - const vcdOrg = { currentState: { apiUrl: 'https://vcd.my.demo.lab', diff --git a/packages/manager/apps/hpc-vmware-managed-vcd/src/components/tiles/organization-service-tile/OrganizationServiceManagementTile.spec.tsx b/packages/manager/apps/hpc-vmware-managed-vcd/src/components/tiles/organization-service-tile/OrganizationServiceManagementTile.spec.tsx index 07dcb9d3e15f..6eb5263bb245 100644 --- a/packages/manager/apps/hpc-vmware-managed-vcd/src/components/tiles/organization-service-tile/OrganizationServiceManagementTile.spec.tsx +++ b/packages/manager/apps/hpc-vmware-managed-vcd/src/components/tiles/organization-service-tile/OrganizationServiceManagementTile.spec.tsx @@ -11,12 +11,15 @@ import OrganizationServiceManagementTile from './OrganizationServiceManagementTi import { labels } from '../../../test-utils'; import { subRoutes, urls } from '../../../routes/routes.constant'; -vi.mock('react-router-dom', async (importOriginal) => ({ - ...(await importOriginal()), - useHref: () => urls.resetPassword.replace(subRoutes.dashboard, 'id'), - useNavigate: () => ({ navigate: vi.fn() }), - useParams: () => ({ id: 'id' }), -})); +vi.mock('react-router-dom', async (importOriginal) => { + const module: typeof import('react-router-dom') = await importOriginal(); + return { + ...module, + useHref: () => urls.resetPassword.replace(subRoutes.dashboard, 'id'), + useNavigate: () => vi.fn(), + useParams: () => ({ id: 'id' }), + }; +}); const shellContext = { environment: { diff --git a/packages/manager/apps/hpc-vmware-managed-vcd/src/routes/routes.tsx b/packages/manager/apps/hpc-vmware-managed-vcd/src/routes/routes.tsx index 76661897741d..f486e7dfbfee 100644 --- a/packages/manager/apps/hpc-vmware-managed-vcd/src/routes/routes.tsx +++ b/packages/manager/apps/hpc-vmware-managed-vcd/src/routes/routes.tsx @@ -1,243 +1,244 @@ +import { ErrorBoundary } from '@ovh-ux/manager-react-components'; import React from 'react'; -import { RouteObject } from 'react-router-dom'; +import { Route } from 'react-router-dom'; import { PageType } from '@ovh-ux/manager-react-shell-client'; import NotFound from '@/pages/404'; import { urls } from '@/routes/routes.constant'; -const lazyRouteConfig = (importFn: CallableFunction): Partial => { - return { - lazy: async () => { - const { default: moduleDefault, ...moduleExports } = await importFn(); - return { - Component: moduleDefault, - ...moduleExports, - }; - }, - }; -}; +const LayoutPage = React.lazy(() => import('@/pages/layout')); +const OnboardingPage = React.lazy(() => + import('@/pages/onboarding/Onboarding.page'), +); +const ListingPage = React.lazy(() => + import('@/pages/listing/organizations/Organizations.page'), +); +const OrganizationDashboardPage = React.lazy(() => + import('@/pages/dashboard/organization/OrganizationDashboard.page'), +); +const OrganizationGeneralInformationPage = React.lazy(() => + import( + '@/pages/dashboard/organization/general-information/OrganizationGeneralInformation.page' + ), +); +const OrganizationEditNamePage = React.lazy(() => + import( + '@/pages/dashboard/organization/general-information/edit/EditName.page' + ), +); +const OrganizationEditDescriptionPage = React.lazy(() => + import( + '@/pages/dashboard/organization/general-information/edit/EditDescription.page' + ), +); +const OrganizationResetPasswordPage = React.lazy(() => + import( + '@/pages/dashboard/organization/general-information/edit/EditPassword.page' + ), +); +const DatacentresPage = React.lazy(() => + import('@/pages/listing/datacentres/Datacentres.page'), +); +const DatacentreDashboardPage = React.lazy(() => + import('@/pages/dashboard/datacentre/DatacentreDashboard.page'), +); +const DatacentreGeneralInformationPage = React.lazy(() => + import( + '@/pages/dashboard/datacentre/general-informations/DatacentreGeneralInformation.page' + ), +); +const DatacentreEditDescriptionPage = React.lazy(() => + import( + '@/pages/dashboard/datacentre/general-informations/edit/EditVdcDescription.page' + ), +); +const DatacentreStoragePage = React.lazy(() => + import('@/pages/dashboard/datacentre/storage/DatacentreStorage.page'), +); +const DatacentreStorageOrderPage = React.lazy(() => + import( + '@/pages/dashboard/datacentre/storage-order/DatacentreStorageOrder.page' + ), +); +const DatacentreComputePage = React.lazy(() => + import('@/pages/dashboard/datacentre/compute/DatacentreCompute.page'), +); +const DatacentreComputeOrderPage = React.lazy(() => + import( + '@/pages/dashboard/datacentre/compute-order/DatacentreComputeOrder.page' + ), +); -export const Routes: any = [ - { - path: urls.root, - ...lazyRouteConfig(() => import('@/pages/layout')), - children: [ - { - id: 'listing', - path: urls.listing, - ...lazyRouteConfig(() => - import('@/pages/listing/organizations/Organizations.page'), - ), - handle: { +export default ( + + } + > + + + - import('@/pages/dashboard/organization/OrganizationDashboard.page'), - ), - children: [ - { - id: 'dashboard', - path: '', - ...lazyRouteConfig(() => - import( - '@/pages/dashboard/organization/general-information/OrganizationGeneralInformation.page' - ), - ), - handle: { - tracking: { - pageName: 'general-informations', - pageType: PageType.dashboard, - }, + }} + > + - import( - '@/pages/dashboard/organization/general-information/edit/EditName.page' - ), - ), - handle: { - tracking: { - pageName: 'edit-name', - pageType: PageType.popup, - }, - }, - }, - { - id: 'edit-description', - path: urls.editDescription, - ...lazyRouteConfig(() => - import( - '@/pages/dashboard/organization/general-information/edit/EditDescription.page' - ), - ), - handle: { - tracking: { - pageName: 'edit-description', - pageType: PageType.popup, - }, - }, - }, - { - id: 'reset-password', - path: urls.resetPassword, - ...lazyRouteConfig(() => - import( - '@/pages/dashboard/organization/general-information/edit/EditPassword.page' - ), - ), - handle: { - tracking: { - pageName: 'reset-password', - pageType: PageType.popup, - }, - }, - }, - ], - }, - { - id: 'datacentres', - path: urls.datacentres, - ...lazyRouteConfig(() => - import('@/pages/listing/datacentres/Datacentres.page'), - ), - handle: { - tracking: { - pageName: 'datacenters', - pageType: PageType.listing, - }, + }} + /> + + + + - import('@/pages/dashboard/datacentre/DatacentreDashboard.page'), - ), - handle: { + }} + /> + + + - import( - '@/pages/dashboard/datacentre/general-informations/DatacentreGeneralInformation.page' - ), - ), - handle: { - tracking: { - pageName: 'datacenter', - pageType: PageType.dashboard, - }, - }, - children: [ - { - id: 'vdc-edit-description', - path: urls.datacentreEditDescription, - ...lazyRouteConfig(() => - import( - '@/pages/dashboard/datacentre/general-informations/edit/EditVdcDescription.page' - ), - ), - handle: { - tracking: { - pageName: 'vdc-edit-description', - pageType: PageType.popup, - }, - }, - }, - ], - }, - { - id: 'vDcStorage', - path: urls.datacentreStorage, - ...lazyRouteConfig(() => - import( - '@/pages/dashboard/datacentre/storage/DatacentreStorage.page' - ), - ), - handle: { - tracking: { - pageName: 'storage', - pageType: PageType.listing, - }, - }, - }, - { - id: 'vDcStorage-order', - path: urls.datacentreStorageOrder, - ...lazyRouteConfig(() => - import( - '@/pages/dashboard/datacentre/storage-order/DatacentreStorageOrder.page' - ), - ), - handle: { - tracking: { - pageName: 'storage-order', - pageType: PageType.funnel, - }, + }} + > + + + - import( - '@/pages/dashboard/datacentre/compute/DatacentreCompute.page' - ), - ), - handle: { - tracking: { - pageName: 'compute', - pageType: PageType.listing, - }, - }, + }} + /> + - import( - '@/pages/dashboard/datacentre/compute-order/DatacentreComputeOrder.page' - ), - ), - handle: { - tracking: { - pageName: 'compute-order', - pageType: PageType.funnel, - }, - }, + }} + /> + import('@/pages/onboarding/Onboarding.page')), - handle: { + }} + /> + + + , - }, -]; + }} + /> + } /> + +); diff --git a/packages/manager/apps/hpc-vmware-managed-vcd/src/test-utils/TestApp.tsx b/packages/manager/apps/hpc-vmware-managed-vcd/src/test-utils/TestApp.tsx index 99fa0eaedc42..b871fe48eceb 100644 --- a/packages/manager/apps/hpc-vmware-managed-vcd/src/test-utils/TestApp.tsx +++ b/packages/manager/apps/hpc-vmware-managed-vcd/src/test-utils/TestApp.tsx @@ -1,11 +1,17 @@ -import React from 'react'; +import React, { Suspense } from 'react'; import { QueryClientProvider, QueryClient } from '@tanstack/react-query'; -import { createMemoryRouter, RouterProvider } from 'react-router-dom'; -import { Routes } from '../routes/routes'; +import { + createMemoryRouter, + RouterProvider, + createRoutesFromElements, +} from 'react-router-dom'; +import Routes from '@/routes/routes'; import { MessageContextProvider } from '@/context/Message.context'; +import Loading from '@/components/loading/Loading.component'; export function TestApp({ initialRoute = '/' }) { - const router = createMemoryRouter(Routes, { + const routes = createRoutesFromElements(Routes); + const router = createMemoryRouter(routes, { initialEntries: [initialRoute], initialIndex: 0, }); @@ -17,7 +23,9 @@ export function TestApp({ initialRoute = '/' }) { return ( - + }> + + ); diff --git a/packages/manager/apps/veeam-backup/public/translations/dashboard/Messages_en_GB.json b/packages/manager/apps/veeam-backup/public/translations/dashboard/Messages_en_GB.json index 5af857a3fbec..6149c4c8eef8 100644 --- a/packages/manager/apps/veeam-backup/public/translations/dashboard/Messages_en_GB.json +++ b/packages/manager/apps/veeam-backup/public/translations/dashboard/Messages_en_GB.json @@ -14,7 +14,7 @@ "subscription": "Subscription", "next_billing": "Next payment date", "creation_date": "Created on", - "delete_service": "Close service", + "delete_service": "Cancel the service", "contacts": "Contacts", "automatic_renew": "Automatic renewal", "manual_renew": "Manual renewal",