Skip to content

Commit

Permalink
chore(migration): migrate from CRA to VITE (eclipse-tractusx#627)
Browse files Browse the repository at this point in the history
  • Loading branch information
Martin Rohrmeier authored Mar 26, 2024
1 parent c63f57f commit e455d08
Show file tree
Hide file tree
Showing 115 changed files with 4,575 additions and 9,853 deletions.
7 changes: 5 additions & 2 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"ignorePatterns": ["*.test.tsx", "*.stories.tsx"],
"ignorePatterns": ["*.config.ts", "*.test.tsx", "*.stories.tsx"],
"env": {
"browser": true,
"es2021": true
},
"extends": [
"standard-with-typescript",
"love",
"eslint:recommended",
"plugin:react/recommended",
"plugin:@typescript-eslint/recommended",
Expand All @@ -32,7 +32,9 @@
"@typescript-eslint/comma-dangle": 0,
"@typescript-eslint/explicit-function-return-type": 0,
"@typescript-eslint/ban-types": 0,
"@typescript-eslint/no-duplicate-enum-values": 0,
"@typescript-eslint/no-unsafe-argument": 0,
"@typescript-eslint/no-unsafe-enum-comparison": 0,
"@typescript-eslint/no-unsafe-assignment": 0,
"@typescript-eslint/no-unsafe-call": 0,
"@typescript-eslint/no-unsafe-member-access": 0,
Expand All @@ -48,6 +50,7 @@
"@typescript-eslint/no-misused-promises": 0,
"@typescript-eslint/no-non-null-assertion": 0,
"@typescript-eslint/no-unnecessary-type-assertion": 0,
"@typescript-eslint/no-redundant-type-constituents": 0,
"@typescript-eslint/prefer-includes": 0,
"@typescript-eslint/promise-function-async": 0,
"@typescript-eslint/restrict-plus-operands": 0,
Expand Down
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

## unreleased

- Migrate from Create React App to Vite Framework
- The old base is deprecated so we switch to a new framework for build scripts and development server
- Subscription Management Board
- Create new page for company subscriptions and add subscription management functionality
- Quick links
Expand Down
10 changes: 5 additions & 5 deletions public/index.html → index.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
<!--
- Copyright (c) 2021, 2023 BMW Group AG
- Copyright (c) 2021, 2023 Contributors to the Eclipse Foundation
- Copyright (c) 2021, 2024 Contributors to the Eclipse Foundation
-
- See the NOTICE file(s) distributed with this work for additional
- information regarding copyright ownership.
Expand All @@ -22,15 +21,16 @@
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABT1JREFUaEPlWT1MY0cQ/ubZkEhJ4TRJS9oIg9FhpFSBpDgp8SNcF0xxRkkPaS8Fpri0QJ8I7iTs64AzKZNAFQkjYWyU9qBMmoCUSLnEZqJ9frbfz+6+fTa6QLKlPW9nvtnZ+WZmCQMu3kQKr2EFQAGECZrH+YBbxvqcYkkHhLmMaTA2AYw4fxFmaB4Hg+wZ99u+AXAJawCWfQrvAgA3ZH4EkAl5604AKGELwEPpUd8RAC+6MR9EcUcAsPKi/R8B7PyUGUkmmw+JaITZzWbAJZgOmi1r78H7NW1ajpWFeBsZEE5u4gSE4UNDrRVmFCJS567FrdVPpn6uyeSMAXAZK2AUtcoMQmjnJJNKNFsrFEzBUQTAtGxP1TfC1y7iQy5jxCWr6SgdILyrY+Lvjt7LsJXY8YRK5JZeASJs5SYbi77fdDvwNpZAjtdTBpquKK+Wq1RHVwDSn6CBEhBv2JNnXQKVhpBDVq9jDdHx2VPJWKQFhyN8S3j9mpKbAIeJz8RgqQzP2Nkzp2QJAdAyrVzhlSjkKI/d4N+Vo7ElEK/3baf6wwM725gJAejD+EMQCsG4b6fGlijyou9Nz8hDAjlOYPAcgA90wIeH6Z374/VffSfAJQhvLRl4THi9SHlH3rdcr5veGzBwRYSCPdnwnWDlKL0FUpQsQqNFs/a9eqULwC2NRZEWtU5BmAt5/SSTSjYdrwvvGS0C9v5OJgoPJmqXsg8qx+kaGOOy/wg0n8vWn3kB7ILxqVYzY5UWwlxQOU7PuanWJFs5XrdAxVy2rr0flePRdTDJI8LlBQcAP8UbSOL3CONDWUaQUlyvAzhsNhOFYIng8I3IKp6OrlIdKwIsur3QYvDXs9mzr9oASvgQwPcaABuU9zcvleroNBFtmpKSzutccsJOhF+K8r3MaA7gGT7DNcpKAC/xFi2iG6fPq+m1WKUA4dS6bhWC9Yyb9Xz3pj8AZXwOxjdSAIQ9mu9dzP3q2DKDRTtpuGjVztZDDOz1unej/gBs4zEIj6QWBS5upTp2YsSqeq+LuPb3067yVwAgrW5oOh4g3mgmksVgegxNMSQe+5cB0AVwXejUKV77pFOMWwWA8aQ5lFgOeb3dBImLalLMnVK+J2eehWLdAX8IqUoBJz2bNEG+Y/IT5X41vcuQkyuBvshl69+2eaBPAKpSwG2Cdgy93oHg4xqXJH9TpTpfKREXgPA6GMuzU41Q/R+zCRL2SctxbRkBIGHRRx/fq/8Q+wREg/JXa/hSWgq056TmJTRhD3+i4CVJgej5UbpA7XujXMPD9Ob98fofHQCPQHiskA6VEUE5FSlp9A/UBInQzWUbTtXbBqAvJWqUx4TMGFkpYEDPN9AEBVpKLsEWJ6dRvk55fBnI690CzMDoTqwP3gTJmnp+ireRxC8RhogmunNpxTDKPNaBG2qC6KKZtDJeruk1NCXnYULbhxp62i92Q00QCKfNRGI6SJReACIkRO6+qXUqxjK0gNBI0CTLeI3QtZ7Bpl49+48DS+H1zhb7x+kXJo2QSesZngsNFkoX7phF+U7mjlzEG4N+Kcrx4Efyydw2iiDn5THO2sBLFIOkFNxAtKIARUw/5E2QzBjldNoZpVsoRk4qAGleVyGPAmBxa0I1So8FoCPsFmZzIOdJVYxNUiCc4xo1WDiI+6waBcDONoxH/l0mjhMng8r+xwHQhZ2ttx/NDVes4zLcUyumPQHGE3uqEfXk5Nv/9gBQMG2U024HgECBFmV0gKXjiA8u6w8h9RTDVNMrPwH3lfKciLdksyNTwzty/wATsrFPLbsvywAAAABJRU5ErkJggg=="> <meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="icon" href="data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABT1JREFUaEPlWT1MY0cQ/ubZkEhJ4TRJS9oIg9FhpFSBpDgp8SNcF0xxRkkPaS8Fpri0QJ8I7iTs64AzKZNAFQkjYWyU9qBMmoCUSLnEZqJ9frbfz+6+fTa6QLKlPW9nvtnZ+WZmCQMu3kQKr2EFQAGECZrH+YBbxvqcYkkHhLmMaTA2AYw4fxFmaB4Hg+wZ99u+AXAJawCWfQrvAgA3ZH4EkAl5604AKGELwEPpUd8RAC+6MR9EcUcAsPKi/R8B7PyUGUkmmw+JaITZzWbAJZgOmi1r78H7NW1ajpWFeBsZEE5u4gSE4UNDrRVmFCJS567FrdVPpn6uyeSMAXAZK2AUtcoMQmjnJJNKNFsrFEzBUQTAtGxP1TfC1y7iQy5jxCWr6SgdILyrY+Lvjt7LsJXY8YRK5JZeASJs5SYbi77fdDvwNpZAjtdTBpquKK+Wq1RHVwDSn6CBEhBv2JNnXQKVhpBDVq9jDdHx2VPJWKQFhyN8S3j9mpKbAIeJz8RgqQzP2Nkzp2QJAdAyrVzhlSjkKI/d4N+Vo7ElEK/3baf6wwM725gJAejD+EMQCsG4b6fGlijyou9Nz8hDAjlOYPAcgA90wIeH6Z374/VffSfAJQhvLRl4THi9SHlH3rdcr5veGzBwRYSCPdnwnWDlKL0FUpQsQqNFs/a9eqULwC2NRZEWtU5BmAt5/SSTSjYdrwvvGS0C9v5OJgoPJmqXsg8qx+kaGOOy/wg0n8vWn3kB7ILxqVYzY5UWwlxQOU7PuanWJFs5XrdAxVy2rr0flePRdTDJI8LlBQcAP8UbSOL3CONDWUaQUlyvAzhsNhOFYIng8I3IKp6OrlIdKwIsur3QYvDXs9mzr9oASvgQwPcaABuU9zcvleroNBFtmpKSzutccsJOhF+K8r3MaA7gGT7DNcpKAC/xFi2iG6fPq+m1WKUA4dS6bhWC9Yyb9Xz3pj8AZXwOxjdSAIQ9mu9dzP3q2DKDRTtpuGjVztZDDOz1unej/gBs4zEIj6QWBS5upTp2YsSqeq+LuPb3067yVwAgrW5oOh4g3mgmksVgegxNMSQe+5cB0AVwXejUKV77pFOMWwWA8aQ5lFgOeb3dBImLalLMnVK+J2eehWLdAX8IqUoBJz2bNEG+Y/IT5X41vcuQkyuBvshl69+2eaBPAKpSwG2Cdgy93oHg4xqXJH9TpTpfKREXgPA6GMuzU41Q/R+zCRL2SctxbRkBIGHRRx/fq/8Q+wREg/JXa/hSWgq056TmJTRhD3+i4CVJgej5UbpA7XujXMPD9Ob98fofHQCPQHiskA6VEUE5FSlp9A/UBInQzWUbTtXbBqAvJWqUx4TMGFkpYEDPN9AEBVpKLsEWJ6dRvk55fBnI690CzMDoTqwP3gTJmnp+ireRxC8RhogmunNpxTDKPNaBG2qC6KKZtDJeruk1NCXnYULbhxp62i92Q00QCKfNRGI6SJReACIkRO6+qXUqxjK0gNBI0CTLeI3QtZ7Bpl49+48DS+H1zhb7x+kXJo2QSesZngsNFkoX7phF+U7mjlzEG4N+Kcrx4Efyydw2iiDn5THO2sBLFIOkFNxAtKIARUw/5E2QzBjldNoZpVsoRk4qAGleVyGPAmBxa0I1So8FoCPsFmZzIOdJVYxNUiCc4xo1WDiI+6waBcDONoxH/l0mjhMng8r+xwHQhZ2ttx/NDVes4zLcUyumPQHGE3uqEfXk5Nv/9gBQMG2U024HgECBFmV0gKXjiA8u6w8h9RTDVNMrPwH3lfKciLdksyNTwzty/wATsrFPLbsvywAAAABJRU5ErkJggg==">
<title></title>
</head>
<body>
<div id="app"></div>
<!-- Do NOT change 'ENV' without changing 'custom_env_vars_anchor' in scripts/inject-dynamic-env.sh as well -->
<script>
// Do NOT change 'ENV' without changing 'custom_env_vars_anchor' in scripts/inject-dynamic-env.sh as well
const ENV = {PORTAL_ASSETS_URL:"http://localhost:3000/assets",PORTAL_BACKEND_URL:"https://portal-backend.example.org",CENTRALIDP_URL:"https://centralidp.example.org/auth",BPDM_API_URL:"https://business-partners.example.org/pool/api",SEMANTICS_URL:"https://semantics.example.org",MANAGED_IDENTITY_WALLETS_NEW_URL:"https://managed-identity-wallets-new.example.org",REALM:"CX-Central",CLIENT_ID:"Cl2-CX-Portal",CLIENT_ID_SEMANTIC:"Cl3-CX-Semantic",CLIENT_ID_MIW:"Cl5-CX-Custodian"}
</script>
<script type="module" src="/src/index.tsx"></script>
</body>
</html>
33 changes: 10 additions & 23 deletions ...onents/shared/frame/Logo/Logo.stories.tsx → jest.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
/********************************************************************************
* Copyright (c) 2021, 2023 BMW Group AG
* Copyright (c) 2021, 2023 Contributors to the Eclipse Foundation
* Copyright (c) 2021, 2024 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
* information regarding copyright ownership.
Expand All @@ -18,26 +17,14 @@
* SPDX-License-Identifier: Apache-2.0
********************************************************************************/

import { ComponentStory, ComponentMeta } from '@storybook/react'
import { MemoryRouter } from 'react-router-dom'
import { Logo } from '.'

export default {
title: 'frame/Logo',
component: Logo,
parameters: {
layout: 'fullscreen',
preset: 'ts-jest',
testEnvironment: 'jest-environment-jsdom',
testMatch: ['**/*.test.ts', '**/*.test.tsx', '**/*.test.js', '**/*.test.jsx'],
transform: {
'^.+\\.tsx?$': 'ts-jest',
},
decorators: [
(Story) => (
<MemoryRouter>
<Story />
</MemoryRouter>
),
],
styles: ['./components/App.css'],
} as ComponentMeta<typeof Logo>

const Template: ComponentStory<typeof Logo> = () => <Logo />

export const Standard = Template.bind({})
moduleNameMapper: {
'\\.(gif|ttf|eot|svg|png)$': '<rootDir>/test/__ mocks __/fileMock.js',
},
}
115 changes: 57 additions & 58 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
"description": "Catena-X Portal Frontend",
"author": "Catena-X Contributors",
"license": "Apache-2.0",
"type": "module",
"repository": {
"type": "git",
"url": "https://github.com/eclipse-tractusx/portal-frontend.git"
Expand All @@ -27,84 +28,82 @@
},
"dependencies": {
"@catena-x/portal-shared-components": "^2.1.42",
"@emotion/react": "^11.11.1",
"@emotion/react": "^11.11.4",
"@emotion/styled": "^11.11.0",
"@hookform/error-message": "^2.0.1",
"@mui/icons-material": "^5.11.16",
"@mui/material": "^5.13.4",
"@mui/icons-material": "^5.15.14",
"@mui/material": "^5.15.14",
"@react-hook/cache": "^1.1.1",
"@reduxjs/toolkit": "^1.9.5",
"@types/papaparse": "^5.3.7",
"axios": "^1.6.4",
"@reduxjs/toolkit": "^2.2.1",
"axios": "^1.6.8",
"buffer": "^6.0.3",
"dayjs": "^1.11.8",
"dayjs": "^1.11.10",
"i18next": "^23.10.1",
"i18next-browser-languagedetector": "^7.2.0",
"keycloak-js": "^23.0.7",
"lodash.debounce": "^4.0.8",
"lodash.uniq": "^4.5.0",
"nanoid": "^4.0.2",
"nanoid": "^5.0.6",
"papaparse": "^5.4.1",
"phone": "^3.1.39",
"qs": "^6.11.2",
"phone": "^3.1.42",
"qs": "^6.12.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-dropzone": "^14.2.3",
"react-hook-form": "^7.44.3",
"react-hook-form": "^7.51.1",
"react-i18next": "^14.1.0",
"react-player": "^2.12.0",
"react-redux": "^8.0.7",
"react-router-dom": "^6.12.1",
"sass": "^1.63.3"
"react-player": "^2.15.1",
"react-redux": "^9.1.0",
"react-router-dom": "^6.22.3",
"sass": "^1.72.0"
},
"devDependencies": {
"@babel/core": "^7.22.5",
"@babel/plugin-proposal-private-property-in-object": "^7.21.11",
"@babel/plugin-syntax-flow": "^7.22.5",
"@babel/plugin-transform-react-jsx": "^7.22.5",
"@testing-library/dom": "^9.3.0",
"@testing-library/jest-dom": "^5.14.1",
"@testing-library/react": "^13.0.0",
"@testing-library/user-event": "^13.2.1",
"@types/jest": "^27.0.1",
"@types/lodash": "^4.14.195",
"@types/lodash.debounce": "^4.0.7",
"@types/lodash.uniq": "^4.5.7",
"@types/node": "^16.7.13",
"@types/react": "^18.2.11",
"@types/react-dom": "^18.2.4",
"@types/react-redux": "^7.1.25",
"@types/react-slick": "^0.23.10",
"@typescript-eslint/eslint-plugin": "^5.50.0",
"@typescript-eslint/parser": "^5.59.9",
"eslint": "8.37.0",
"eslint-config-prettier": "^8.8.0",
"eslint-config-standard-with-typescript": "^35.0.0",
"eslint-plugin-import": "^2.25.2",
"eslint-plugin-n": "^15.0.0",
"eslint-plugin-promise": "^6.0.0",
"eslint-plugin-react": "^7.32.2",
"@testing-library/dom": "^9.3.4",
"@testing-library/jest-dom": "^6.4.2",
"@testing-library/react": "^14.2.1",
"@testing-library/user-event": "^14.5.2",
"@types/jest": "^29.5.12",
"@types/lodash": "^4.17.0",
"@types/lodash.debounce": "^4.0.9",
"@types/lodash.uniq": "^4.5.9",
"@types/node": "^20.11.30",
"@types/papaparse": "^5.3.14",
"@types/qs": "^6.9.13",
"@types/react": "^18.2.67",
"@types/react-dom": "^18.2.22",
"@types/react-redux": "^7.1.33",
"@types/react-slick": "^0.23.13",
"@typescript-eslint/eslint-plugin": "^7.3.1",
"@typescript-eslint/parser": "^7.3.1",
"@vitejs/plugin-react": "^4.2.1",
"eslint": "^8.57.0",
"eslint-config-love": "^43.1.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-n": "^16.6.2",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-react": "^7.34.1",
"eslint-plugin-react-hooks": "^4.6.0",
"husky": "^8.0.3",
"prettier": "^2.8.8",
"react-scripts": "5.0.1",
"typescript": "5.0.4"
},
"resolutions": {
"**/nth-check": "^2.1.1",
"**/@babel/traverse": "^7.23.2",
"**/follow-redirects": "^1.15.4",
"**/@adobe/css-tools": "^4.3.2"
"husky": "^9.0.11",
"identity-obj-proxy": "^3.0.0",
"jest": "^29.7.0",
"jest-environment-jsdom": "^29.7.0",
"prettier": "^3.2.5",
"ts-jest": "^29.1.2",
"ts-node": "^10.9.2",
"typescript": "^5.4.2",
"vite": "^5.1.6",
"vite-plugin-svgr": "^4.2.0",
"vite-tsconfig-paths": "^4.3.2"
},
"scripts": {
"prepare": "husky install",
"build:sources": "zip -r portal-frontend.zip src package.json yarn.lock -x '*.stories.*' -x '*.test.*' -x '*.css' -x '*.scss' -x '*.svg' -x '*.jpg' -x '*.png' -x '*.webp' -x '*.ttf'",
"prepare": "husky",
"pretty": "prettier --write \"**/*.{ts,tsx,js,jsx,json,css,sass,scss,xml,md}\"",
"lint": "yarn run eslint \"./src/**/*.{ts,tsx}\"",
"start": "PORT=3001 BROWSER=none GENERATE_SOURCEMAP=false react-scripts start",
"build": "yarn build:copy-legal-info && GENERATE_SOURCEMAP=false react-scripts build",
"test": "react-scripts test",
"test:ci": "CI=true react-scripts test",
"lint": "eslint \"./src/**/*.{ts,tsx,js,jsx}\" --report-unused-disable-directives --max-warnings 0",
"start": "vite --host --port 3001",
"build": "yarn build:copy-legal-info && tsc && vite build",
"test": "jest",
"test:ci": "CI=true jest",
"build:docker": "if [ -d \"./build\" ]; then yarn build:docker:prebuilt; else yarn build:docker:full; fi",
"build:docker:full": "IMAGE=$npm_package_config_image && docker build -t $IMAGE -f .conf/Dockerfile.full --build-arg \"http_proxy=${http_proxy}\" --build-arg \"https_proxy=${https_proxy}\" --build-arg \"no_proxy=${no_proxy}\" .",
"build:docker:prebuilt": "IMAGE=$npm_package_config_image && docker build -t $IMAGE -f .conf/Dockerfile.prebuilt . && docker tag $IMAGE:latest $IMAGE:$npm_package_version",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ const TechnicalUserAddFormSelect = ({

return (
<Controller
render={({ field: { onChange, value } }) => (
render={({ field: { onChange } }) => (
<Box className="technicalUserForm">
<InputLabel
error={!!errors[name as keyof Object]}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ export default function AppDeclineAdminboard({ id }: { id: string }) {
.then(() => {
dispatch(setSuccessType(true))
})
.catch((error) => dispatch(setErrorType(true)))
.catch(() => dispatch(setErrorType(true)))
dispatch(closeOverlay())
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ export default function ServiceDeclineAdminboard({ id }: { id: string }) {
.then(() => {
dispatch(setSuccessType(true))
})
.catch((error) => dispatch(setErrorType(true)))
.catch(() => dispatch(setErrorType(true)))
dispatch(closeOverlay())
}

Expand Down
2 changes: 1 addition & 1 deletion src/components/overlays/IDPDelete/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
* SPDX-License-Identifier: Apache-2.0
********************************************************************************/

import React, { useState } from 'react'
import { useState } from 'react'

import {
Button,
Expand Down
45 changes: 0 additions & 45 deletions src/components/overlays/InviteForm/InviteForm.stories.tsx

This file was deleted.

2 changes: 1 addition & 1 deletion src/components/overlays/UpdateCertificate/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ export type CertificateType = {
title: string
}

export default function UpdateCertificate({ id }: { id: string }) {
export default function UpdateCertificate() {
const { t } = useTranslation()
const dispatch = useDispatch<typeof store.dispatch>()
const [uploadedFile, setUploadedFile] = useState<File>()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
* SPDX-License-Identifier: Apache-2.0
********************************************************************************/

import React, { useState, useEffect, useRef, type SyntheticEvent } from 'react'
import { useState, useEffect, useRef, type SyntheticEvent } from 'react'
import { useTranslation } from 'react-i18next'
import {
Dialog,
Expand Down Expand Up @@ -128,7 +128,7 @@ const CompanyDetailOverlay = ({
}

const handleChange = (
event: SyntheticEvent<Element, Event>,
_event: SyntheticEvent<Element, Event>,
newValue: number
) => {
setHeight(
Expand Down Expand Up @@ -252,7 +252,7 @@ const CompanyDetailOverlay = ({
<DetailGridRow
key={id.type}
{...{
variableName: getUniqueIdName(id) as string,
variableName: getUniqueIdName(id)!,
value: id.value ?? '',
}}
/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
* SPDX-License-Identifier: Apache-2.0
********************************************************************************/

import React, { useState } from 'react'
import { useState } from 'react'
import { useTranslation } from 'react-i18next'
import {
Dialog,
Expand Down
Loading

0 comments on commit e455d08

Please sign in to comment.