Skip to content

Commit 0bae12e

Browse files
authored
fix: useParams() and application deletion fix (#30)
* useParams fix Signed-off-by: saumeya <[email protected]> * fix: useParams and deletion fix Signed-off-by: saumeya <[email protected]> * fix Signed-off-by: saumeya <[email protected]> --------- Signed-off-by: saumeya <[email protected]>
1 parent b52b10b commit 0bae12e

File tree

5 files changed

+1047
-146
lines changed

5 files changed

+1047
-146
lines changed

package.json

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,22 @@
1818
"devDependencies": {
1919
"@openshift-console/dynamic-plugin-sdk": "0.0.21",
2020
"@openshift-console/dynamic-plugin-sdk-internal": "0.0.11",
21-
"@openshift-console/dynamic-plugin-sdk-webpack": "0.0.9",
21+
"@openshift-console/dynamic-plugin-sdk-webpack": "0.0.11",
2222
"@openshift-console/plugin-shared": "^0.0.1",
23-
"@patternfly/quickstarts": "2.0.1",
24-
"@patternfly/react-core": "^4.202.16",
25-
"@patternfly/react-icons": "3.15.17",
26-
"@patternfly/react-table": "4.44.4",
23+
"@patternfly/react-charts": "6.94.19",
24+
"@patternfly/react-core": "4.276.8",
25+
"@patternfly/react-table": "4.113.0",
26+
"@patternfly/react-tokens": "4.94.6",
27+
"@patternfly/react-topology": "5.0.0",
28+
"@patternfly/quickstarts": "2.4.0",
29+
"@patternfly/react-icons": "3.15.17",
2730
"@types/classnames": "^2.2.7",
2831
"@types/git-url-parse": "^9.0.0",
2932
"@types/node": "^17.0.21",
3033
"@types/react": "^17.0.37",
3134
"@types/react-helmet": "^6.1.4",
3235
"@types/react-redux": "7.1.24",
33-
"@types/react-router-dom": "5.1.2",
36+
"@types/react-router-dom": "5.3.3",
3437
"@types/webpack-dev-server": "^4.7.2",
3538
"@typescript-eslint/eslint-plugin": "^5.15.0",
3639
"@typescript-eslint/parser": "^5.15.0",
@@ -62,7 +65,7 @@
6265
"style-loader": "^2.0.0",
6366
"ts-loader": "^9.2.8",
6467
"ts-node": "^10.7.0",
65-
"typescript": "3.8.3",
68+
"typescript": "4.8.4",
6669
"webpack": "^5.68.0",
6770
"webpack-cli": "^4.9.2",
6871
"webpack-dev-server": "^4.9.3"
@@ -90,8 +93,9 @@
9093
"git-url-parse": "^13.1.0",
9194
"react": "^17.0.2",
9295
"react-redux": "7.2.2",
93-
"react-router": "5.2.0",
94-
"react-router-dom": "5.2.0",
96+
"react-router": "5.3.x",
97+
"react-router-dom": "5.3.x",
98+
"react-router-dom-v5-compat": "^6.11.2",
9599
"react-router-hash-link": "^2.0.0",
96100
"redux": "4.0.1"
97101
},

src/components/EnvironmentDetailsPage.tsx

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import * as React from 'react';
2-
import { RouteComponentProps } from 'react-router-dom';
32
import * as _ from 'lodash';
43

54
import { LoadingBox } from '@patternfly/quickstarts';
@@ -12,19 +11,19 @@ import { getEnvData } from './utils/gitops-utils';
1211
import EnvironmentEmptyState from './EnvironmentEmptyState';
1312

1413
type GitOpsOverviewPageProps = {
14+
appName?: string;
1515
customData: {
1616
emptyStateMsg: string;
1717
envs: string[];
1818
applicationBaseURI: string;
1919
manifestURL: string;
2020
};
2121
};
22-
type EnvironmentDetailsPageProps = RouteComponentProps<{ appName?: string }> &
23-
GitOpsOverviewPageProps;
22+
type EnvironmentDetailsPageProps = GitOpsOverviewPageProps;
2423

25-
const EnvironmentDetailsPage: React.FC<EnvironmentDetailsPageProps> = ({ match, customData }) => {
26-
const { emptyStateMsg, envs, applicationBaseURI, manifestURL } = customData;
27-
const { appName } = match.params;
24+
const EnvironmentDetailsPage: React.FC<EnvironmentDetailsPageProps> = (props) => {
25+
const { emptyStateMsg, envs, applicationBaseURI, manifestURL } = props.customData;
26+
const appName = props.appName;
2827

2928
const [envsData, setEnvsData] = React.useState<GitOpsEnvironment[]>(null);
3029
const [error, setError] = React.useState<Error>(null);

src/components/EnvironmentDetailsPageTabs.tsx

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import * as React from 'react';
22
import Helmet from 'react-helmet';
33
import { useTranslation } from 'react-i18next';
4-
import { RouteComponentProps } from 'react-router';
4+
import { useParams } from 'react-router-dom-v5-compat';
55

66
import { HorizontalNav, NavPage } from '@openshift-console/dynamic-plugin-sdk';
77
import { LoadingBox } from '@patternfly/quickstarts';
@@ -12,13 +12,9 @@ import DevPreviewBadge from './import/badges/DevPreviewBadge';
1212
import useEnvDetails from './utils/useEnvDetails';
1313
import EnvironmentDetailsPage from './EnvironmentDetailsPage';
1414

15-
type EnvironmentDetailsPageTabsProps = RouteComponentProps<{ appName?: string }>;
16-
17-
export const EnvironmentDetailsPageTabs: React.FC<EnvironmentDetailsPageTabsProps> = ({
18-
match,
19-
}) => {
15+
export const EnvironmentDetailsPageTabs: React.FC = () => {
2016
const { t } = useTranslation('plugin__gitops-plugin');
21-
const { appName } = match.params;
17+
const { appName } = useParams();
2218
const searchParams = new URLSearchParams(location.search);
2319
const manifestURL = searchParams.get('url');
2420
const applicationBaseURI = `/application/${appName}?url=${manifestURL}&app=${appName}`;

src/components/utils/useEnvDetails.ts

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,24 @@ import * as React from 'react';
22
import { useTranslation } from 'react-i18next';
33
import * as _ from 'lodash';
44

5-
import { pipelinesBaseURI } from '../../const';
5+
import { fetchDataFrequency, pipelinesBaseURI } from '../../const';
66

77
import { fetchAppGroups } from './gitops-utils';
88

99
const useEnvDetails = (appName, manifestURL) => {
1010
const { t } = useTranslation('plugin__gitops-plugin');
1111
const [envs, setEnvs] = React.useState<string[]>(null);
1212
const [emptyStateMsg, setEmptyStateMsg] = React.useState(null);
13+
1314
React.useEffect(() => {
1415
let ignore = false;
15-
16-
fetchAppGroups(pipelinesBaseURI, manifestURL)
17-
.then((appGroups) => {
16+
const getAppData = async () => {
17+
let data;
18+
try {
19+
data = await fetchAppGroups(pipelinesBaseURI, manifestURL);
1820
if (ignore) return;
19-
const app = _.find(appGroups, (appObj) => appName === appObj?.name);
21+
22+
const app = _.find(data, (appObj) => appName === appObj?.name);
2023
if (!app?.environments) {
2124
setEmptyStateMsg(
2225
t(
@@ -25,14 +28,15 @@ const useEnvDetails = (appName, manifestURL) => {
2528
);
2629
}
2730
setEnvs(app?.environments);
28-
})
29-
.catch((e) => {
30-
// eslint-disable-next-line no-console
31-
console.error('Unable to load EnvDetails', e);
32-
});
31+
} catch (err) {
32+
console.error('Unable to load EnvDetails', err);
33+
}
34+
};
3335

36+
const id = setInterval(getAppData, fetchDataFrequency * 1000);
3437
return () => {
3538
ignore = true;
39+
clearInterval(id);
3640
};
3741
}, [appName, manifestURL, t]);
3842
return [envs, emptyStateMsg];

0 commit comments

Comments
 (0)