Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions packages/manager/apps/hub/eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
// Full adoption
/*import { eslintSharedConfig } from '@ovh-ux/manager-static-analysis-kit';

export default eslintSharedConfig;
*/

// Progressive adoption
// import { a11yEslintConfig } from '@ovh-ux/manager-static-analysis-kit/eslint/a11y';
// import {
// complexityJsxTsxConfig,
// complexityTsJsConfig,
// } from '@ovh-ux/manager-static-analysis-kit/eslint/complexity';
// import { cssEslintConfig } from '@ovh-ux/manager-static-analysis-kit/eslint/css';
import { htmlEslintConfig } from '@ovh-ux/manager-static-analysis-kit/eslint/html';
// import { importEslintConfig } from '@ovh-ux/manager-static-analysis-kit/eslint/imports';
import { javascriptEslintConfig } from '@ovh-ux/manager-static-analysis-kit/eslint/javascript';
// import { checkFileEslintConfig } from '@ovh-ux/manager-static-analysis-kit/eslint/naming-conventions';
import { prettierEslintConfig } from '@ovh-ux/manager-static-analysis-kit/eslint/prettier';
// import { reactEslintConfig } from '@ovh-ux/manager-static-analysis-kit/eslint/react';
import { tailwindJsxConfig } from '@ovh-ux/manager-static-analysis-kit/eslint/tailwind-jsx';
// import { tanStackQueryEslintConfig } from '@ovh-ux/manager-static-analysis-kit/eslint/tanstack';
// import { vitestEslintConfig } from '@ovh-ux/manager-static-analysis-kit/eslint/tests';
import { typescriptEslintConfig } from '@ovh-ux/manager-static-analysis-kit/eslint/typescript';
// import { storybookEslintConfig } from '@ovh-ux/manager-static-analysis-kit/eslint/storybook';

// Progressive and disable full rules
export default [
{
...typescriptEslintConfig,
rules: {
...typescriptEslintConfig.rules,
'@typescript-eslint/no-unnecessary-type-constraint': 'off',
'@typescript-eslint/no-unused-vars': 'off',
'@typescript-eslint/no-unsafe-return': 'off',
'@typescript-eslint/require-await': 'off',
'@typescript-eslint/no-unsafe-member-access': 'off',
'@typescript-eslint/no-misused-promises': 'off',
'@typescript-eslint/no-unsafe-enum-comparison': 'off',
'@typescript-eslint/no-unsafe-argument': 'off',
'@typescript-eslint/no-unsafe-assignment': 'off',
'@typescript-eslint/no-unnecessary-type-assertion': 'off',
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-floating-promises': 'off',
'@typescript-eslint/no-unsafe-call': 'off',
'@typescript-eslint/unbound-method': 'off',
'@typescript-eslint/no-redundant-type-constituents': 'off',
'@typescript-eslint/no-duplicate-type-constituents': 'off',
},
},
javascriptEslintConfig,
htmlEslintConfig,
tailwindJsxConfig,
prettierEslintConfig,
];
4 changes: 4 additions & 0 deletions packages/manager/apps/hub/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@
"author": "OVH SAS",
"scripts": {
"build": "tsc && vite build",
"build:strict": "tsc --project tsconfig.strict.json && vite build",
"lint:modern": "manager-lint --config eslint.config.mjs ./src",
"lint:modern:fix": "manager-lint --fix --config eslint.config.mjs ./src",
"start": "vite",
"test": "manager-test run",
"test:watch": "manager-test watch"
Expand Down Expand Up @@ -42,6 +45,7 @@
},
"devDependencies": {
"@ovh-ux/manager-tailwind-config": "^0.5.5",
"@ovh-ux/manager-static-analysis-kit": "^0.11.0",
"@ovh-ux/manager-tests-setup": "^0.2.0",
"@ovh-ux/manager-vite-config": "^0.13.4",
"@tanstack/react-query-devtools": "^5.51.21",
Expand Down
13 changes: 7 additions & 6 deletions packages/manager/apps/hub/src/App.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
import React, { Suspense } from 'react';

import { RouterProvider, createHashRouter, createRoutesFromElements } from 'react-router-dom';

import { QueryClientProvider } from '@tanstack/react-query';
import { ReactQueryDevtools } from '@tanstack/react-query-devtools';

import { odsSetup } from '@ovhcloud/ods-common-core';
import {
RouterProvider,
createHashRouter,
createRoutesFromElements,
} from 'react-router-dom';
import Routes from '@/routes/routes';

import queryClient from '@/queryClient';
import Routes from '@/routes/routes';

import Loading from './components/Loading/Loading';

odsSetup();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import { PropsWithChildren } from 'react';

import { QueryClient, QueryClientProvider } from '@tanstack/react-query';

export function ReactQueryWrapper({
children,
client,
}: PropsWithChildren<{ client?: QueryClient }>) {
const queryClient = client ?? new QueryClient();
return (
<QueryClientProvider client={queryClient}>{children}</QueryClientProvider>
);
return <QueryClientProvider client={queryClient}>{children}</QueryClientProvider>;
}

export default ReactQueryWrapper;
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
/* eslint-disable import/no-extraneous-dependencies */
import { vi } from 'vitest';
import { render } from '@testing-library/react';
/* eslint-enable import/no-extraneous-dependencies */
import {
ShellContext,
ShellContextType,
} from '@ovh-ux/manager-react-shell-client';
import { ReactNode } from 'react';

import { render } from '@testing-library/react';
import { vi } from 'vitest';

import { ShellContext, ShellContextType } from '@ovh-ux/manager-react-shell-client';

import { deepMerge } from '@/utils/deepMerge';

const baseShellContext = {
Expand Down
20 changes: 6 additions & 14 deletions packages/manager/apps/hub/src/__mocks__/billingServices.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
import {
HubBillingServices,
BillingService,
} from '@/billing/types/billingServices.type';
import { BillingService, HubBillingServices } from '@/billing/types/billingServices.type';

const serviceResiliated = new BillingService({
canDeleteAtExpiration: false,
Expand All @@ -21,8 +18,7 @@ const serviceResiliated = new BillingService({
serviceId: 'serviceResiliated',
serviceType: 'HOSTING_WEB',
status: 'TERMINATED',
url:
'https://www.ovh.com/manager/#/web/configuration/hosting/serviceResiliated',
url: 'https://www.ovh.com/manager/#/web/configuration/hosting/serviceResiliated',
});
const serviceWithManualRenewNotResiliatedWithoutDebt = new BillingService({
canDeleteAtExpiration: false,
Expand All @@ -42,8 +38,7 @@ const serviceWithManualRenewNotResiliatedWithoutDebt = new BillingService({
serviceId: 'serviceWithManualRenewNotResiliatedWithoutDebt',
serviceType: 'DOMAIN',
status: 'ACTIVE',
url:
'https://www.ovh.com/manager/#/web/configuration/domain/serviceWithManualRenewNotResiliatedWithoutDebt/information',
url: 'https://www.ovh.com/manager/#/web/configuration/domain/serviceWithManualRenewNotResiliatedWithoutDebt/information',
});
const serviceOneShotWithoutResiliation = new BillingService({
canDeleteAtExpiration: false,
Expand All @@ -63,8 +58,7 @@ const serviceOneShotWithoutResiliation = new BillingService({
serviceId: 'serviceOneShotWithoutResiliation',
serviceType: 'DEDICATED_SERVER',
status: 'ACTIVE',
url:
'https://www.ovh.com/manager/#/dedicated/server/serviceOneShotWithoutResiliation',
url: 'https://www.ovh.com/manager/#/dedicated/server/serviceOneShotWithoutResiliation',
});
const serviceWithoutUrlAndSuspendedBilling = new BillingService({
canDeleteAtExpiration: false,
Expand Down Expand Up @@ -104,8 +98,7 @@ const serviceInDebt = new BillingService({
serviceId: 'serviceOneShotWithoutResiliation',
serviceType: 'DEDICATED_SERVER',
status: 'PENDING_DEBT',
url:
'https://www.ovh.com/manager/#/dedicated/server/serviceOneShotWithoutResiliation',
url: 'https://www.ovh.com/manager/#/dedicated/server/serviceOneShotWithoutResiliation',
});
const serviceWithAutomaticRenewNotResiliated = new BillingService({
canDeleteAtExpiration: false,
Expand All @@ -125,8 +118,7 @@ const serviceWithAutomaticRenewNotResiliated = new BillingService({
serviceId: 'serviceWithAutomaticRenewNotResiliated',
serviceType: 'HOSTING_WEB',
status: 'ACTIVE',
url:
'https://www.ovh.com/manager/#/web/configuration/hosting/serviceWithAutomaticRenewNotResiliated',
url: 'https://www.ovh.com/manager/#/web/configuration/hosting/serviceWithAutomaticRenewNotResiliated',
});

export const NoServices: HubBillingServices = {
Expand Down
Loading
Loading