diff --git a/package-lock.json b/package-lock.json index 671b841b..a636107b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,15 +10,15 @@ "hasInstallScript": true, "license": "GNU AGPLv3", "dependencies": { - "@patternfly/patternfly": "5.4.0", - "@patternfly/react-charts": "7.4.0", - "@patternfly/react-component-groups": "^5.2.0", - "@patternfly/react-core": "5.4.0", - "@patternfly/react-icons": "5.4.0", - "@patternfly/react-table": "5.4.0", - "@patternfly/react-tokens": "5.4.0", + "@ausuliv/frontend-components-notifications": "^4.1.5", + "@patternfly/patternfly": "6.0.0-alpha.222", + "@patternfly/react-charts": "8.0.0-alpha.38", + "@patternfly/react-component-groups": "6.0.0-alpha.14", + "@patternfly/react-core": "6.0.0-alpha.102", + "@patternfly/react-icons": "6.0.0-alpha.36", + "@patternfly/react-table": "6.0.0-alpha.103", + "@patternfly/react-tokens": "6.0.0-alpha.35", "@redhat-cloud-services/frontend-components": "^4.2.14", - "@redhat-cloud-services/frontend-components-notifications": "^4.1.0", "@redhat-cloud-services/frontend-components-translations": "^3.2.8", "@redhat-cloud-services/frontend-components-utilities": "^4.0.17", "@reduxjs/toolkit": "^2.2.7", @@ -120,6 +120,162 @@ "node": ">=6.0.0" } }, + "node_modules/@ausuliv/frontend-components": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/@ausuliv/frontend-components/-/frontend-components-4.2.11.tgz", + "integrity": "sha512-5EiOvSy/cW4O3H1mhEY2D/GwihmoNkq6U7+3c+Ek/oNHqD4dw+dKGUk1/XQ0GTGUozy4+DmiZ8OzrBzQDW0BLw==", + "license": "Apache-2.0", + "dependencies": { + "@ausuliv/frontend-components-utilities": "^4.0.10", + "@patternfly/react-component-groups": "6.0.0-alpha.12", + "@redhat-cloud-services/types": "^0.0.24", + "@scalprum/core": "^0.7.0", + "@scalprum/react-core": "^0.7.0", + "classnames": "^2.2.5", + "sanitize-html": "^2.7.2" + }, + "peerDependencies": { + "@patternfly/react-core": "6.0.0-alpha.100", + "@patternfly/react-icons": "6.0.0-alpha.35", + "@patternfly/react-table": "6.0.0-alpha.101", + "lodash": "^4.17.15", + "prop-types": "^15.6.2", + "react": "^18.2.0", + "react-content-loader": "^6.2.0", + "react-dom": "^18.2.0", + "react-redux": ">=7.0.0", + "react-router-dom": "^5.0.0 || ^6.0.0" + } + }, + "node_modules/@ausuliv/frontend-components-notifications": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@ausuliv/frontend-components-notifications/-/frontend-components-notifications-4.1.5.tgz", + "integrity": "sha512-Zm+QOT1wvJl60V6SD9KEIROYJt0uBgNsRKmtz9Q2UnhjCP/DZGVhYsSk97cNth+c59nWhdciKEjvrw1aubzsxw==", + "license": "Apache-2.0", + "dependencies": { + "@ausuliv/frontend-components": "^4.2.9", + "@ausuliv/frontend-components-utilities": "^4.0.11", + "redux-promise-middleware": "6.1.3" + }, + "peerDependencies": { + "@patternfly/react-core": "6.0.0-alpha.100", + "@patternfly/react-icons": "6.0.0-alpha.35", + "prop-types": "^15.6.2", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-redux": ">=7.2.9", + "redux": ">=4.2.0" + } + }, + "node_modules/@ausuliv/frontend-components-notifications/node_modules/redux-promise-middleware": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/redux-promise-middleware/-/redux-promise-middleware-6.1.3.tgz", + "integrity": "sha512-B/Hi5Ct5d9y5d/KG0f6MZUXKA0nrQh5583mHCx13HY3Avte8KfpoRH/TB5QT6k/FcjT6JCxjv7jedymidy2A1A==", + "license": "MIT", + "peerDependencies": { + "redux": "^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/@ausuliv/frontend-components-utilities": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/@ausuliv/frontend-components-utilities/-/frontend-components-utilities-4.0.13.tgz", + "integrity": "sha512-eQWk0ATeaFunJaqWZKwldEE77+k5z+8MzBDiLI6az0IWp8mykZcZnkV72517r6YI/UPU4Nm50UtMd1Gw8q7yIA==", + "license": "Apache-2.0", + "dependencies": { + "@redhat-cloud-services/rbac-client": "^1.0.100", + "@redhat-cloud-services/types": "^0.0.24", + "@sentry/browser": "^5.30.0", + "awesome-debounce-promise": "^2.1.0", + "axios": "^0.28.1", + "commander": "^2.20.3", + "mkdirp": "^1.0.4", + "p-all": "^5.0.0", + "react-content-loader": "^6.2.0" + }, + "peerDependencies": { + "@patternfly/react-core": "6.0.0-alpha.100", + "@patternfly/react-table": "6.0.0-alpha.101", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-redux": ">=7.0.0", + "react-router-dom": "^5.0.0 || ^6.0.0" + } + }, + "node_modules/@ausuliv/frontend-components-utilities/node_modules/@redhat-cloud-services/rbac-client": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/rbac-client/-/rbac-client-1.4.5.tgz", + "integrity": "sha512-7kryZfzEYuw1V7c8bO5esXnfeYQO4Skz1XhluJ2whZNji8HcVbwDjBsQxy0+ndaSVirh5d86fufb00vK6fyUjw==", + "license": "Apache-2.0", + "dependencies": { + "axios": "^0.27.2", + "tslib": "^2.6.2" + } + }, + "node_modules/@ausuliv/frontend-components-utilities/node_modules/@redhat-cloud-services/rbac-client/node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "node_modules/@ausuliv/frontend-components-utilities/node_modules/@redhat-cloud-services/types": { + "version": "0.0.24", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/types/-/types-0.0.24.tgz", + "integrity": "sha512-P50stc+mnWLycID46/AKmD/760r5N1eoam//O6MUVriqVorUdht7xkUL78aJZU1vw8WW6xlrDHwz3F6BM148qg==", + "license": "Apache-2.0" + }, + "node_modules/@ausuliv/frontend-components-utilities/node_modules/axios": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.1.tgz", + "integrity": "sha512-iUcGA5a7p0mVb4Gm/sy+FSECNkPFT4y7wt6OM/CDpO/OnNCvSs3PoMG8ibrC9jRoGYU0gUK5pXVC4NPXq6lHRQ==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/@ausuliv/frontend-components/node_modules/@patternfly/react-component-groups": { + "version": "6.0.0-alpha.12", + "resolved": "https://registry.npmjs.org/@patternfly/react-component-groups/-/react-component-groups-6.0.0-alpha.12.tgz", + "integrity": "sha512-tmR6SWEVntEYPXQvtnivZgL3xdhPb6Fa73Yiyse9wSrrEo/Vv8oBD+e1SswOImfS0ELzFc9bLby20cN0xZQAKw==", + "license": "MIT", + "dependencies": { + "@patternfly/react-core": "^6.0.0-alpha.100", + "@patternfly/react-icons": "^6.0.0-alpha.35", + "@patternfly/react-table": "^6.0.0-alpha.101", + "clsx": "^2.1.1", + "react-jss": "^10.10.0" + }, + "peerDependencies": { + "react": "^17 || ^18", + "react-dom": "^17 || ^18" + } + }, + "node_modules/@ausuliv/frontend-components/node_modules/@redhat-cloud-services/types": { + "version": "0.0.24", + "resolved": "https://registry.npmjs.org/@redhat-cloud-services/types/-/types-0.0.24.tgz", + "integrity": "sha512-P50stc+mnWLycID46/AKmD/760r5N1eoam//O6MUVriqVorUdht7xkUL78aJZU1vw8WW6xlrDHwz3F6BM148qg==", + "license": "Apache-2.0" + }, + "node_modules/@ausuliv/frontend-components/node_modules/@scalprum/react-core": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@scalprum/react-core/-/react-core-0.7.1.tgz", + "integrity": "sha512-CdLSwg46MYyDqCjWGuim/u0HF6GaPPGxXRD6AkWCkB4o3feBep+2zRAjzNfi3IlhNufWaiswxLpThhTLG4cgMg==", + "license": "Apache-2.0", + "dependencies": { + "@openshift/dynamic-plugin-sdk": "^5.0.1", + "@scalprum/core": "^0.7.0", + "lodash": "^4.17.0" + }, + "peerDependencies": { + "react": ">=16.8.0 || >=17.0.0 || ^18.0.0", + "react-dom": ">=16.8.0 || >=17.0.0 || ^18.0.0" + } + }, "node_modules/@babel/code-frame": { "version": "7.24.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", @@ -2214,19 +2370,19 @@ } }, "node_modules/@patternfly/patternfly": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@patternfly/patternfly/-/patternfly-5.4.0.tgz", - "integrity": "sha512-9B33M4N0/KDyss6NpCwAhz18za7R+sXYiFrUObhGoJ1Cmg06SeScVrEAjT4yJwAClWUlKh604Af9wE4D7IF8Lg==", + "version": "6.0.0-alpha.222", + "resolved": "https://registry.npmjs.org/@patternfly/patternfly/-/patternfly-6.0.0-alpha.222.tgz", + "integrity": "sha512-DK6hMiJAyLo3mf4KYebEqQwdOtN+AFzFCxlHhQawgPdPYS1000eBrKpNe7mAzmzubwXSffDXsSz+q7ddB6uMiw==", "license": "MIT" }, "node_modules/@patternfly/react-charts": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/@patternfly/react-charts/-/react-charts-7.4.0.tgz", - "integrity": "sha512-2nvjoGw+ndAwiSFds041wMb4c1BnflyWLAutyC1kYTawhlKrSDGsd4heKWmquzg7GTLBzr1w6YbxKv2i2l7Z7g==", + "version": "8.0.0-alpha.38", + "resolved": "https://registry.npmjs.org/@patternfly/react-charts/-/react-charts-8.0.0-alpha.38.tgz", + "integrity": "sha512-hjNXPc98OLZbcWYei4UPEvgYxqr0Rz2db6/EjRXn5ba2VX7222180sz8/1hPIHiSTORpk7FKeIwyEq4IGNGYYA==", "license": "MIT", "dependencies": { - "@patternfly/react-styles": "^5.4.0", - "@patternfly/react-tokens": "^5.4.0", + "@patternfly/react-styles": "^6.0.0-alpha.35", + "@patternfly/react-tokens": "^6.0.0-alpha.35", "hoist-non-react-statics": "^3.3.2", "lodash": "^4.17.21", "tslib": "^2.6.3", @@ -2260,14 +2416,15 @@ "license": "0BSD" }, "node_modules/@patternfly/react-component-groups": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@patternfly/react-component-groups/-/react-component-groups-5.2.0.tgz", - "integrity": "sha512-kb57OOVJ9L5fbY/kiil8awPWuJVops8Rz1ZNFtkEb72mF3lhmRadYNheLBeaD8T9GE1dOaVJRMMf133ZSKN87g==", + "version": "6.0.0-alpha.14", + "resolved": "https://registry.npmjs.org/@patternfly/react-component-groups/-/react-component-groups-6.0.0-alpha.14.tgz", + "integrity": "sha512-tjuuCP9x7S/mZ2eEoPLu8auHvFMxF89205Cv66XLqgSb2Mn8Bjcu0Tnhl9FFLCniRN0S3KtKDthQkerI4UObqw==", + "license": "MIT", "dependencies": { - "@patternfly/react-core": "^5.1.1", - "@patternfly/react-icons": "^5.1.1", - "@patternfly/react-table": "^5.1.1", - "clsx": "^2.0.0", + "@patternfly/react-core": "^6.0.0-alpha.101", + "@patternfly/react-icons": "^6.0.0-alpha.36", + "@patternfly/react-table": "^6.0.0-alpha.102", + "clsx": "^2.1.1", "react-jss": "^10.10.0" }, "peerDependencies": { @@ -2276,17 +2433,17 @@ } }, "node_modules/@patternfly/react-core": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@patternfly/react-core/-/react-core-5.4.0.tgz", - "integrity": "sha512-Tz2Y9V4G2pnwrylc/4/FyxIRFvxiA8BEBIG6UBwXxrstnJmJaHgAIy6QJdJmERzVx3GVDz6/rM0PnMqa5R6auQ==", + "version": "6.0.0-alpha.102", + "resolved": "https://registry.npmjs.org/@patternfly/react-core/-/react-core-6.0.0-alpha.102.tgz", + "integrity": "sha512-NjnLhgYwJ3LuA3/DDwzM10X9dlZyR9ICAKOXI2FlxRM0kTAnAK0kLx7MuQjZ7wboIjxpRaA3lG8c9zlHDrCWdQ==", "license": "MIT", "dependencies": { - "@patternfly/react-icons": "^5.4.0", - "@patternfly/react-styles": "^5.4.0", - "@patternfly/react-tokens": "^5.4.0", + "@patternfly/react-icons": "^6.0.0-alpha.36", + "@patternfly/react-styles": "^6.0.0-alpha.35", + "@patternfly/react-tokens": "^6.0.0-alpha.35", "focus-trap": "7.5.4", "react-dropzone": "^14.2.3", - "tslib": "^2.6.3" + "tslib": "^2.6.2" }, "peerDependencies": { "react": "^17 || ^18", @@ -2300,9 +2457,9 @@ "license": "0BSD" }, "node_modules/@patternfly/react-icons": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@patternfly/react-icons/-/react-icons-5.4.0.tgz", - "integrity": "sha512-2M3qN/naultvRHeG2laJMmoIroFCGAyfwTVrnCjSkG6/KnRoXV0+dqd+Xrh7xzpzvIJB1klvifC0oX42cEkDrA==", + "version": "6.0.0-alpha.36", + "resolved": "https://registry.npmjs.org/@patternfly/react-icons/-/react-icons-6.0.0-alpha.36.tgz", + "integrity": "sha512-9gxJr3UxqZnUKwtPfV1JrzcH76hN/5hHM5CL5HJVWnAhI6WjRm3oQ9dA/PLo91Kyo3tN6TQKV1b2x/LhPiBscw==", "license": "MIT", "peerDependencies": { "react": "^17 || ^18", @@ -2310,21 +2467,21 @@ } }, "node_modules/@patternfly/react-styles": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@patternfly/react-styles/-/react-styles-5.4.0.tgz", - "integrity": "sha512-4ZE0s6LkX/0KsN0FOeogrDoj18m+BPA73YKnabZGB4SDRzrBNeBh2a6bSt546ZseEjkoJ+S81kOG0G8YckPQYg==", + "version": "6.0.0-alpha.35", + "resolved": "https://registry.npmjs.org/@patternfly/react-styles/-/react-styles-6.0.0-alpha.35.tgz", + "integrity": "sha512-9ddQpDJ1CXDbsuV5lYmynw8hqGncKXxnhNwvUKc+s/i50pNBAMmNO9CP5dkKhnZPcjHQj0A35aleQ7xdRgNWQw==", "license": "MIT" }, "node_modules/@patternfly/react-table": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@patternfly/react-table/-/react-table-5.4.0.tgz", - "integrity": "sha512-HkXxVEPeI6nRVSUSHb5BungF41IfjB8W2VqaA3SX+6fGxQAW0e/Hb58ctUdPR2VJ/S2YZFcIcqCCWQtQEf+xKA==", + "version": "6.0.0-alpha.103", + "resolved": "https://registry.npmjs.org/@patternfly/react-table/-/react-table-6.0.0-alpha.103.tgz", + "integrity": "sha512-EVLLZ8R/e3/Hx0JigSyKTASqmifEPHBCtivYf6RMkp8eRRkgyrM9VRGQk354UJky7kcY1Jsp4aKMcPd/0Tc9dg==", "license": "MIT", "dependencies": { - "@patternfly/react-core": "^5.4.0", - "@patternfly/react-icons": "^5.4.0", - "@patternfly/react-styles": "^5.4.0", - "@patternfly/react-tokens": "^5.4.0", + "@patternfly/react-core": "^6.0.0-alpha.102", + "@patternfly/react-icons": "^6.0.0-alpha.36", + "@patternfly/react-styles": "^6.0.0-alpha.35", + "@patternfly/react-tokens": "^6.0.0-alpha.35", "lodash": "^4.17.21", "tslib": "^2.6.3" }, @@ -2340,9 +2497,9 @@ "license": "0BSD" }, "node_modules/@patternfly/react-tokens": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@patternfly/react-tokens/-/react-tokens-5.4.0.tgz", - "integrity": "sha512-KONkwCVOMyklhuuaYeYgcAsGtCBQXnsBGZeolhOdSzr2Mj0RVSW0oMrQPgZuPVzhhC/kbqgClHJJl6xuG9xheA==", + "version": "6.0.0-alpha.35", + "resolved": "https://registry.npmjs.org/@patternfly/react-tokens/-/react-tokens-6.0.0-alpha.35.tgz", + "integrity": "sha512-TYLYxyx7tDVRYeso+72eGZbM/O3G90brLzHQai2JtKI66XE3T2R89N0VxPT65gbc1cnqNkiTtUKkpUUHmOK9qg==", "license": "MIT" }, "node_modules/@pkgjs/parseargs": { @@ -2725,33 +2882,6 @@ "node": ">=8" } }, - "node_modules/@redhat-cloud-services/frontend-components-notifications": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-notifications/-/frontend-components-notifications-4.1.0.tgz", - "integrity": "sha512-bEoAeZMVY+UuSriSeruZ1pIesiPEjScrVFJQ5Wq/w3UFc79oXSYOgpRElxblPUH/LbKqp7inbzqRm2FxMcVxYg==", - "dependencies": { - "@redhat-cloud-services/frontend-components": "^4.0.9", - "@redhat-cloud-services/frontend-components-utilities": "^4.0.2", - "redux-promise-middleware": "6.1.3" - }, - "peerDependencies": { - "@patternfly/react-core": "^5.0.0", - "@patternfly/react-icons": "^5.0.0", - "prop-types": "^15.6.2", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-redux": ">=7.2.9", - "redux": ">=4.2.0" - } - }, - "node_modules/@redhat-cloud-services/frontend-components-notifications/node_modules/redux-promise-middleware": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/redux-promise-middleware/-/redux-promise-middleware-6.1.3.tgz", - "integrity": "sha512-B/Hi5Ct5d9y5d/KG0f6MZUXKA0nrQh5583mHCx13HY3Avte8KfpoRH/TB5QT6k/FcjT6JCxjv7jedymidy2A1A==", - "peerDependencies": { - "redux": "^2.0.0 || ^3.0.0 || ^4.0.0" - } - }, "node_modules/@redhat-cloud-services/frontend-components-translations": { "version": "3.2.8", "resolved": "https://registry.npmjs.org/@redhat-cloud-services/frontend-components-translations/-/frontend-components-translations-3.2.8.tgz", @@ -2790,6 +2920,23 @@ "react-router-dom": "^5.0.0 || ^6.0.0" } }, + "node_modules/@redhat-cloud-services/frontend-components/node_modules/@patternfly/react-component-groups": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@patternfly/react-component-groups/-/react-component-groups-5.2.0.tgz", + "integrity": "sha512-kb57OOVJ9L5fbY/kiil8awPWuJVops8Rz1ZNFtkEb72mF3lhmRadYNheLBeaD8T9GE1dOaVJRMMf133ZSKN87g==", + "license": "MIT", + "dependencies": { + "@patternfly/react-core": "^5.1.1", + "@patternfly/react-icons": "^5.1.1", + "@patternfly/react-table": "^5.1.1", + "clsx": "^2.0.0", + "react-jss": "^10.10.0" + }, + "peerDependencies": { + "react": "^17 || ^18", + "react-dom": "^17 || ^18" + } + }, "node_modules/@redhat-cloud-services/javascript-clients-shared": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@redhat-cloud-services/javascript-clients-shared/-/javascript-clients-shared-1.2.4.tgz", @@ -3140,159 +3287,6 @@ "node": ">=10" } }, - "node_modules/@swc/core-darwin-x64": { - "version": "1.7.23", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.7.23.tgz", - "integrity": "sha512-GzqHwQ0Y1VyjdI/bBKFX2GKm5HD3PIB6OhuAQtWZMTtEr2yIrlT0YK2T+XKh7oIg31JwxGBeQdBk3KTI7DARmQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.7.23", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.23.tgz", - "integrity": "sha512-qwX4gB41OS6/OZkHcpTqLFGsdmvoZyffnJIlgB/kZKwH3lfeJWzv6vx57zXtNpM/t7GoQEe0VZUVdmNjxSxBZw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.7.23", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.23.tgz", - "integrity": "sha512-TsrbUZdMaUwzI7+g/8rHPLWbntMKYSu5Bn5IBSqVKPeyqaXxNnlIUnWXgXcUcRAc+T+Y8ADfr7EiFz9iz5DuSA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.7.23", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.23.tgz", - "integrity": "sha512-JEdtwdthazKq4PBz53KSubwwK8MvqODAihGSAzc8u3Unq4ojcvaS8b0CwLBeD+kTQ78HpxOXTt3DsFIxpgaCAA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.7.23", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.23.tgz", - "integrity": "sha512-V51gFPWaVAHbI1yg9ahsoya3aB4uawye3SZ5uQWgcP7wdCdiv60dw4F5nuPJf5Z1oXD3U/BslXuamv8Oh9vXqQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-musl": { - "version": "1.7.23", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.23.tgz", - "integrity": "sha512-BBqQi4+UdeRqag3yM4IJjaHG4yc1o3l9ksENHToE0o/u2DT0FY5+K/DiYGZLC1JHbSFzNqRCYsa7DIzRtZ0A1A==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.7.23", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.23.tgz", - "integrity": "sha512-JPk6pvCKncL6bXG7p+NLZf8PWx4FakVvKNdwGeMrYunb+yk1IZf7qf9LJk8+GDGF5QviDXPs8opZrTrfsW80fA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.7.23", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.23.tgz", - "integrity": "sha512-2Whxi8d+bLQBzJcQ5qYPHlk02YYVGsMVav0fWk+FnX2z1QRREIu1L1xvrpi7gBpjXp6BIU40ya8GiKeekNT2bg==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.7.23", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.23.tgz", - "integrity": "sha512-82fARk4/yJ40kwWKY/gdKDisPdtgJE9jgpl/vkNG3alyJxrCzuNM7+CtiKoYbXLeqM8GQTS3wlvCaJu9oQ8dag==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, "node_modules/@swc/counter": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", diff --git a/package.json b/package.json index e42c3704..44356141 100644 --- a/package.json +++ b/package.json @@ -46,15 +46,15 @@ "verify": "npm-run-all build lint test" }, "dependencies": { - "@patternfly/patternfly": "5.4.0", - "@patternfly/react-charts": "7.4.0", - "@patternfly/react-component-groups": "^5.2.0", - "@patternfly/react-core": "5.4.0", - "@patternfly/react-icons": "5.4.0", - "@patternfly/react-table": "5.4.0", - "@patternfly/react-tokens": "5.4.0", + "@patternfly/patternfly": "6.0.0-alpha.222", + "@patternfly/react-charts": "8.0.0-alpha.38", + "@patternfly/react-component-groups": "6.0.0-alpha.14", + "@patternfly/react-core": "6.0.0-alpha.102", + "@patternfly/react-icons": "6.0.0-alpha.36", + "@patternfly/react-table": "6.0.0-alpha.103", + "@patternfly/react-tokens": "6.0.0-alpha.35", "@redhat-cloud-services/frontend-components": "^4.2.14", - "@redhat-cloud-services/frontend-components-notifications": "^4.1.0", + "@ausuliv/frontend-components-notifications": "^4.1.5", "@redhat-cloud-services/frontend-components-translations": "^3.2.8", "@redhat-cloud-services/frontend-components-utilities": "^4.0.17", "@reduxjs/toolkit": "^2.2.7", @@ -133,6 +133,9 @@ "webpack-bundle-analyzer": "^4.10.2" }, "overrides": { + "@patternfly/react-core": "6.0.0-alpha.102", + "@patternfly/react-icons": "6.0.0-alpha.36", + "@patternfly/react-table": "6.0.0-alpha.103", "@typescript-eslint/eslint-plugin": "^8.4.0", "eslint": "^9.9.1", "redux": "^5.0.1" diff --git a/src/App.tsx b/src/App.tsx index 87982ba1..da573d41 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,9 +1,9 @@ import './App.scss'; +import NotificationsPortal from '@ausuliv/frontend-components-notifications/NotificationPortal'; +import { notificationsReducer } from '@ausuliv/frontend-components-notifications/redux'; import { Bullseye, Spinner } from '@patternfly/react-core'; import { useChrome } from '@redhat-cloud-services/frontend-components/useChrome'; -import NotificationsPortal from '@redhat-cloud-services/frontend-components-notifications/NotificationPortal'; -import { notificationsReducer } from '@redhat-cloud-services/frontend-components-notifications/redux'; import { getRegistry } from '@redhat-cloud-services/frontend-components-utilities/Registry'; import React, { useEffect } from 'react'; import { useSelector } from 'react-redux'; diff --git a/src/components/feature-toggle/FeatureToggle.tsx b/src/components/feature-toggle/FeatureToggle.tsx index 8670b515..d650939f 100644 --- a/src/components/feature-toggle/FeatureToggle.tsx +++ b/src/components/feature-toggle/FeatureToggle.tsx @@ -7,6 +7,7 @@ import { featureToggleActions } from 'store/feature-toggle'; export const enum FeatureToggle { billingStage = 'hybrid-committed-spend.ui.billing-stage', // Toggle to enable billing.stage APIs for demos debug = 'hybrid-committed-spend.ui.debug', + overridePermissions = 'hybrid-committed-spend.ui.override-permissions', // Toggle to override permissions for testing } const useIsToggleEnabled = (toggle: FeatureToggle) => { @@ -22,6 +23,10 @@ export const useIsDebugToggleEnabled = () => { return useIsToggleEnabled(FeatureToggle.debug); }; +export const useIsOverridePermissionsToggleEnabled = () => { + return useIsToggleEnabled(FeatureToggle.overridePermissions); +}; + // The FeatureToggle component saves feature toggles in store for places where Unleash hooks not available const useFeatureToggle = () => { const dispatch = useDispatch(); @@ -29,6 +34,7 @@ const useFeatureToggle = () => { const isBillingStageToggleEnabled = useIsBillingStageToggleEnabled(); const isDebugToggleEnabled = useIsDebugToggleEnabled(); + const isOverridePermissionsToggleEnabled = useIsOverridePermissionsToggleEnabled(); const fetchUser = callback => { auth.getUser().then(user => { @@ -42,13 +48,14 @@ const useFeatureToggle = () => { featureToggleActions.setFeatureToggle({ isBillingStageToggleEnabled, isDebugToggleEnabled, + isOverridePermissionsToggleEnabled, }) ); if (isDebugToggleEnabled) { // eslint-disable-next-line no-console fetchUser(identity => console.log('User identity:', identity)); } - }, [isBillingStageToggleEnabled, isDebugToggleEnabled]); + }, [isBillingStageToggleEnabled, isDebugToggleEnabled, isOverridePermissionsToggleEnabled]); }; export default useFeatureToggle; diff --git a/src/components/permissions/Permissions.tsx b/src/components/permissions/Permissions.tsx index 1801b9ab..0208eddc 100644 --- a/src/components/permissions/Permissions.tsx +++ b/src/components/permissions/Permissions.tsx @@ -4,6 +4,8 @@ import { Loading, NotAuthorized, NotAvailable, NotDeal, NotViewer, NotVisible } import { FetchStatus } from 'store/common'; import { useFormatPath, usePathname } from 'utils/paths'; import { hasHcsDataVisibility, hasHcsDeal, hasHcsViewer, useUserAccessMapToProps } from 'utils/userAccess'; + +import { useIsOverridePermissionsToggleEnabled } from '../feature-toggle'; interface PermissionsOwnProps { children?: React.ReactNode; } @@ -19,15 +21,10 @@ const Permissions: React.FC = ({ children = null }) => { if (userAccessFetchStatus !== FetchStatus.complete) { return false; } - const hasDeal = hasHcsDeal(userAccess); - const hasViewer = hasHcsViewer(userAccess); - const hasDataVisibility = hasHcsDataVisibility(userAccess); - switch (pathname) { case formatPath(routes.details.path): - return hasDeal && hasDataVisibility && hasViewer; case formatPath(routes.overview.path): - return hasDeal && hasDataVisibility && hasViewer; + return true; default: return false; } @@ -36,17 +33,31 @@ const Permissions: React.FC = ({ children = null }) => { // Page access denied because user doesn't have RBAC permissions and is not an org admin let result = ; + const isOverridePermissionsToggleEnabled = useIsOverridePermissionsToggleEnabled(); + if (userAccessFetchStatus === FetchStatus.inProgress) { result = ; - } else if (userAccessError?.response?.request?.status === 401) { + } else if (userAccessError?.response?.request?.status === 401 && !isOverridePermissionsToggleEnabled) { result = ; } else if (userAccessError) { result = ; - } else if (userAccessFetchStatus === FetchStatus.complete && !hasHcsDeal(userAccess)) { + } else if ( + userAccessFetchStatus === FetchStatus.complete && + !hasHcsDeal(userAccess) && + !isOverridePermissionsToggleEnabled + ) { result = ; - } else if (userAccessFetchStatus === FetchStatus.complete && !hasHcsDataVisibility(userAccess)) { + } else if ( + userAccessFetchStatus === FetchStatus.complete && + !hasHcsDataVisibility(userAccess) && + !isOverridePermissionsToggleEnabled + ) { result = ; - } else if (userAccessFetchStatus === FetchStatus.complete && !hasHcsViewer(userAccess)) { + } else if ( + userAccessFetchStatus === FetchStatus.complete && + !hasHcsViewer(userAccess) && + !isOverridePermissionsToggleEnabled + ) { result = ; } else if (hasPermissions()) { result = <>{children}; diff --git a/src/routes/components/data-toolbar/DataToolbar.scss b/src/routes/components/data-toolbar/DataToolbar.scss index e4c008a0..81bab375 100644 --- a/src/routes/components/data-toolbar/DataToolbar.scss +++ b/src/routes/components/data-toolbar/DataToolbar.scss @@ -3,14 +3,14 @@ // Workaround for https://github.com/patternfly/patternfly-react/issues/4477 // and https://github.com/patternfly/patternfly-react/issues/6371 .selectOverride { - .pf-v5-c-menu-toggle { + .pf-v6-c-menu-toggle { min-width: 250px; } } -.pf-v5-c-toolbar { +.pf-v6-c-toolbar { &.dataToolbarOverride { // Alternative workaround to overriding table sticky style - // --pf-v5-c-toolbar--ZIndex: auto; z-index: 301; + // --pf-v6-c-toolbar--ZIndex: auto; z-index: 301; } } diff --git a/src/routes/components/data-toolbar/DataToolbar.tsx b/src/routes/components/data-toolbar/DataToolbar.tsx index 925d55f9..ceec3e1c 100644 --- a/src/routes/components/data-toolbar/DataToolbar.tsx +++ b/src/routes/components/data-toolbar/DataToolbar.tsx @@ -1,6 +1,6 @@ import './DataToolbar.scss'; -import type { ToolbarChipGroup } from '@patternfly/react-core'; +import type { ToolbarLabelGroup } from '@patternfly/react-core'; import { Button, ButtonVariant, @@ -36,7 +36,7 @@ interface Filters { interface DataToolbarOwnProps { endDate?: Date; - categoryOptions?: ToolbarChipGroup[]; // Options for category menu + categoryOptions?: ToolbarLabelGroup[]; // Options for category menu filterPathsType?: FilterPathsType; groupBy?: string; // Sync category selection with groupBy value isDisabled?: boolean; @@ -155,14 +155,14 @@ const DataToolbar: React.FC = ({ }; // Category input - const getCategoryInput = (categoryOption: ToolbarChipGroup) => { + const getCategoryInput = (categoryOption: ToolbarLabelGroup) => { const disabled = isDisabled && !hasFilters(); return ( @@ -194,13 +194,12 @@ const DataToolbar: React.FC = ({ value={categoryInput} /> + > )} @@ -209,11 +208,11 @@ const DataToolbar: React.FC = ({ ); }; - const getDefaultCategoryOptions = (): ToolbarChipGroup[] => { + const getDefaultCategoryOptions = (): ToolbarLabelGroup[] => { return [{ name: intl.formatMessage(messages.names, { count: 1 }), key: 'name' }]; }; - const getCategoryOptions = (): ToolbarChipGroup[] => { + const getCategoryOptions = (): ToolbarLabelGroup[] => { return categoryOptions ? categoryOptions : getDefaultCategoryOptions(); }; @@ -279,18 +278,17 @@ const DataToolbar: React.FC = ({ const getExportButton = () => { return ( + /> ); }; @@ -320,7 +318,7 @@ const DataToolbar: React.FC = ({ {getExportButton()} - + {pagination} diff --git a/src/routes/components/export/ExportModal.tsx b/src/routes/components/export/ExportModal.tsx index f12739ee..3e4712d7 100644 --- a/src/routes/components/export/ExportModal.tsx +++ b/src/routes/components/export/ExportModal.tsx @@ -1,5 +1,6 @@ import type { MessageDescriptor } from '@formatjs/intl/src/types'; -import { Alert, Button, ButtonVariant, Form, FormGroup, Grid, GridItem, Modal, Radio } from '@patternfly/react-core'; +import { Alert, Button, ButtonVariant, Form, FormGroup, Grid, GridItem, Radio } from '@patternfly/react-core'; +import { Modal } from '@patternfly/react-core/deprecated'; import type { ReportPathsType } from 'api/reports/report'; import type { AxiosError } from 'axios'; import messages from 'locales/messages'; diff --git a/src/routes/components/filterTypeahead/FilterInput.tsx b/src/routes/components/filterTypeahead/FilterInput.tsx index 5b1efeff..a730c15b 100644 --- a/src/routes/components/filterTypeahead/FilterInput.tsx +++ b/src/routes/components/filterTypeahead/FilterInput.tsx @@ -1,4 +1,4 @@ -import type { ToolbarChipGroup } from '@patternfly/react-core'; +import type { ToolbarLabelGroup } from '@patternfly/react-core'; import { Button, Divider, @@ -109,9 +109,12 @@ const FilterInput: React.FC = ({ /> {search?.length && ( - + + } + aria-label={intl.formatMessage(messages.excessSpendButtonAriaLabel)} + variant={ButtonVariant.plain} + /> ); diff --git a/src/routes/overview/components/report-summary/ReportSummary.styles.ts b/src/routes/overview/components/report-summary/ReportSummary.styles.ts index 7cf0821c..06c7a370 100644 --- a/src/routes/overview/components/report-summary/ReportSummary.styles.ts +++ b/src/routes/overview/components/report-summary/ReportSummary.styles.ts @@ -1,7 +1,7 @@ -import { global_Color_200 } from '@patternfly/react-tokens/dist/js/global_Color_200'; -import { global_FontSize_xs } from '@patternfly/react-tokens/dist/js/global_FontSize_xs'; +import { global_font_size_xs } from '@patternfly/react-tokens/dist/js/global_font_size_xs'; import { global_spacer_lg } from '@patternfly/react-tokens/dist/js/global_spacer_lg'; import { global_spacer_md } from '@patternfly/react-tokens/dist/js/global_spacer_md'; +import { global_text_color_200 } from '@patternfly/react-tokens/dist/js/global_text_color_200'; export const styles = { alertContainer: { @@ -24,8 +24,8 @@ export const styles = { }, subtitle: { display: 'inline-block', - fontSize: global_FontSize_xs.var, - color: global_Color_200.var, + fontSize: global_font_size_xs.var, + color: global_text_color_200.var, marginBottom: 0, }, titleContainer: { diff --git a/src/routes/state/loading/Loading.tsx b/src/routes/state/loading/Loading.tsx index 2cf8ab70..101b61c4 100644 --- a/src/routes/state/loading/Loading.tsx +++ b/src/routes/state/loading/Loading.tsx @@ -16,7 +16,7 @@ const Loading = ({ title }: LoadingProps) => { )} - + diff --git a/src/routes/state/not-authorized/NotAuthorized.tsx b/src/routes/state/not-authorized/NotAuthorized.tsx index f7778b7d..718a9029 100644 --- a/src/routes/state/not-authorized/NotAuthorized.tsx +++ b/src/routes/state/not-authorized/NotAuthorized.tsx @@ -19,7 +19,7 @@ const NotAuthorized = ({ pathname, title }: NotAuthorizedProps) => { )} - + diff --git a/src/routes/state/not-available/NotAvailable.tsx b/src/routes/state/not-available/NotAvailable.tsx index 5dcdcc34..98ad6984 100644 --- a/src/routes/state/not-available/NotAvailable.tsx +++ b/src/routes/state/not-available/NotAvailable.tsx @@ -17,7 +17,7 @@ const NotAvailable = ({ title }: NotAvailableProps) => { )} - + diff --git a/src/routes/state/not-deal/NotDeal.tsx b/src/routes/state/not-deal/NotDeal.tsx index a8e6466b..aa711278 100644 --- a/src/routes/state/not-deal/NotDeal.tsx +++ b/src/routes/state/not-deal/NotDeal.tsx @@ -19,7 +19,7 @@ const NotDeal = ({ pathname, title }: NotDealProps) => { )} - + diff --git a/src/routes/state/not-deal/NotDealState.tsx b/src/routes/state/not-deal/NotDealState.tsx index 31ef8416..fa91bea4 100644 --- a/src/routes/state/not-deal/NotDealState.tsx +++ b/src/routes/state/not-deal/NotDealState.tsx @@ -1,5 +1,5 @@ +import NotAuthorized from '@patternfly/react-component-groups/dist/esm/NotAuthorized'; import { PauseCircleIcon } from '@patternfly/react-icons/dist/esm/icons/pause-circle-icon'; -import NotAuthorized from '@redhat-cloud-services/frontend-components/NotAuthorized'; import messages from 'locales/messages'; import React from 'react'; import { useIntl } from 'react-intl'; @@ -31,17 +31,17 @@ const NotDealState: React.FC = ({ pathname }) => { } return ( {intl.formatMessage(messages.hcsDocumentation)} } - description={intl.formatMessage(desc)} - icon={PauseCircleIcon} showReturnButton={false} - title={intl.formatMessage(title)} + titleText={intl.formatMessage(title)} /> ); }; diff --git a/src/routes/state/not-found/NotFound.tsx b/src/routes/state/not-found/NotFound.tsx index a503cf38..95d96f57 100644 --- a/src/routes/state/not-found/NotFound.tsx +++ b/src/routes/state/not-found/NotFound.tsx @@ -4,8 +4,8 @@ import React from 'react'; const NotFound = () => { return ( - - + + ); }; diff --git a/src/routes/state/not-viewer/NotViewer.tsx b/src/routes/state/not-viewer/NotViewer.tsx index 75eee7ad..1623b838 100644 --- a/src/routes/state/not-viewer/NotViewer.tsx +++ b/src/routes/state/not-viewer/NotViewer.tsx @@ -19,7 +19,7 @@ const NotViewer = ({ pathname, title }: NotViewerProps) => { )} - + diff --git a/src/routes/state/not-viewer/NotViewerState.tsx b/src/routes/state/not-viewer/NotViewerState.tsx index af442d24..c2ab0e52 100644 --- a/src/routes/state/not-viewer/NotViewerState.tsx +++ b/src/routes/state/not-viewer/NotViewerState.tsx @@ -1,5 +1,5 @@ +import NotAuthorized from '@patternfly/react-component-groups/dist/esm/NotAuthorized'; import { PauseCircleIcon } from '@patternfly/react-icons/dist/esm/icons/pause-circle-icon'; -import NotAuthorized from '@redhat-cloud-services/frontend-components/NotAuthorized'; import messages from 'locales/messages'; import React from 'react'; import { useIntl } from 'react-intl'; @@ -31,17 +31,17 @@ const NotViewerState: React.FC = ({ pathname }) => { } return ( {intl.formatMessage(messages.hcsDocumentation)} } - description={intl.formatMessage(desc)} - icon={PauseCircleIcon} showReturnButton={false} - title={intl.formatMessage(title)} + titleText={intl.formatMessage(title)} /> ); }; diff --git a/src/routes/state/not-visible/NotVisible.tsx b/src/routes/state/not-visible/NotVisible.tsx index c1baa2f3..e98228b7 100644 --- a/src/routes/state/not-visible/NotVisible.tsx +++ b/src/routes/state/not-visible/NotVisible.tsx @@ -19,7 +19,7 @@ const NotVisible = ({ pathname, title }: NotVisibleProps) => { )} - + diff --git a/src/routes/state/not-visible/NotVisibleState.tsx b/src/routes/state/not-visible/NotVisibleState.tsx index 240de829..19187e57 100644 --- a/src/routes/state/not-visible/NotVisibleState.tsx +++ b/src/routes/state/not-visible/NotVisibleState.tsx @@ -1,5 +1,5 @@ +import NotAuthorized from '@patternfly/react-component-groups/dist/esm/NotAuthorized'; import { PauseCircleIcon } from '@patternfly/react-icons/dist/esm/icons/pause-circle-icon'; -import NotAuthorized from '@redhat-cloud-services/frontend-components/NotAuthorized'; import messages from 'locales/messages'; import React from 'react'; import { useIntl } from 'react-intl'; @@ -31,17 +31,17 @@ const NotVisibleState: React.FC = ({ pathname }) => { } return ( {intl.formatMessage(messages.hcsDocumentation)} } - description={intl.formatMessage(desc)} - icon={PauseCircleIcon} showReturnButton={false} - title={intl.formatMessage(title)} + titleText={intl.formatMessage(title)} /> ); }; diff --git a/src/store/feature-toggle/__snapshots__/featureToggle.test.ts.snap b/src/store/feature-toggle/__snapshots__/featureToggle.test.ts.snap index 45c6bba6..89814138 100644 --- a/src/store/feature-toggle/__snapshots__/featureToggle.test.ts.snap +++ b/src/store/feature-toggle/__snapshots__/featureToggle.test.ts.snap @@ -5,5 +5,6 @@ exports[`default state 1`] = ` "hasFeatureToggle": false, "isBillingStageToggleEnabled": false, "isDebugToggleEnabled": false, + "isOverridePermissionsToggleEnabled": false, } `; diff --git a/src/store/feature-toggle/featureToggleActions.ts b/src/store/feature-toggle/featureToggleActions.ts index 799d0e3d..e0052df7 100644 --- a/src/store/feature-toggle/featureToggleActions.ts +++ b/src/store/feature-toggle/featureToggleActions.ts @@ -3,6 +3,7 @@ import { createAction } from 'typesafe-actions'; export interface FeatureToggleActionMeta { isBillingStageToggleEnabled?: boolean; isDebugToggleEnabled?: boolean; + isOverridePermissionsToggleEnabled?: boolean; } export const setFeatureToggle = createAction('feature/init_feature_toggle')(); diff --git a/src/store/feature-toggle/featureToggleReducer.ts b/src/store/feature-toggle/featureToggleReducer.ts index cf733133..02133590 100644 --- a/src/store/feature-toggle/featureToggleReducer.ts +++ b/src/store/feature-toggle/featureToggleReducer.ts @@ -10,12 +10,14 @@ export type FeatureToggleState = Readonly<{ hasFeatureToggle: boolean; isBillingStageToggleEnabled: boolean; isDebugToggleEnabled: boolean; + isOverridePermissionsToggleEnabled?: boolean; }>; export const defaultState: FeatureToggleState = { hasFeatureToggle: false, isBillingStageToggleEnabled: false, isDebugToggleEnabled: false, + isOverridePermissionsToggleEnabled: false, }; export const stateKey = 'featureToggle'; @@ -28,6 +30,7 @@ export function featureToggleReducer(state = defaultState, action: FeatureToggle hasFeatureToggle: true, isBillingStageToggleEnabled: action.payload.isBillingStageToggleEnabled, isDebugToggleEnabled: action.payload.isDebugToggleEnabled, + isOverridePermissionsToggleEnabled: action.payload.isOverridePermissionsToggleEnabled, }; default: diff --git a/src/store/feature-toggle/featureToggleSelectors.ts b/src/store/feature-toggle/featureToggleSelectors.ts index ec87321a..c231a629 100644 --- a/src/store/feature-toggle/featureToggleSelectors.ts +++ b/src/store/feature-toggle/featureToggleSelectors.ts @@ -9,3 +9,5 @@ export const selectHasFeatureToggle = (state: RootState) => selectFeatureToggleS export const selectIsBillingStageToggleEnabled = (state: RootState) => selectFeatureToggleState(state).isBillingStageToggleEnabled; export const selectIsDebugToggleEnabled = (state: RootState) => selectFeatureToggleState(state).isDebugToggleEnabled; +export const selectIsOverridePermissionsToggleEnabled = (state: RootState) => + selectFeatureToggleState(state).isOverridePermissionsToggleEnabled; diff --git a/src/store/rootReducer.ts b/src/store/rootReducer.ts index 4919ecf8..5392289c 100644 --- a/src/store/rootReducer.ts +++ b/src/store/rootReducer.ts @@ -1,4 +1,4 @@ -import { notificationsReducer } from '@redhat-cloud-services/frontend-components-notifications/redux'; +import { notificationsReducer } from '@ausuliv/frontend-components-notifications/redux'; import { combineReducers } from 'redux'; import { dashboardReducer, dashboardStateKey } from 'store/dashboard'; import { exportReducer, exportStateKey } from 'store/export'; diff --git a/src/store/store.ts b/src/store/store.ts index a7bdcbf9..e6187ed4 100644 --- a/src/store/store.ts +++ b/src/store/store.ts @@ -1,4 +1,4 @@ -import { notificationsMiddleware } from '@redhat-cloud-services/frontend-components-notifications/notificationsMiddleware'; +import { notificationsMiddleware } from '@ausuliv/frontend-components-notifications/notificationsMiddleware'; import { configureStore as createStore } from '@reduxjs/toolkit'; import { axiosInstance } from 'api';