Skip to content

Commit aaa18a5

Browse files
Reducing identical delete boxes
1 parent f2af6a3 commit aaa18a5

File tree

4 files changed

+65
-291
lines changed

4 files changed

+65
-291
lines changed

src/components/KymaModules/KymaModulesList.js

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,14 @@ import { useModuleTemplatesQuery } from './kymaModulesQueries';
1717
import { ModulesList } from './components/ModulesList';
1818

1919
export default function KymaModulesList({
20-
DeleteMessageBox,
21-
handleResourceDelete,
22-
handleModuleUninstall,
23-
setKymaResourceState,
24-
setInitialUnchangedResource,
2520
resourceName,
2621
resourceUrl,
2722
kymaResource,
2823
kymaResourceLoading,
29-
kymaResourceState,
3024
selectedModules,
31-
setOpenedModuleIndex,
32-
detailsOpen,
3325
namespaced,
26+
setOpenedModuleIndex,
27+
handleResourceDelete,
3428
}) {
3529
const { t } = useTranslation();
3630
const [
@@ -73,21 +67,15 @@ export default function KymaModulesList({
7367
customComponents={[
7468
resource => (
7569
<ModulesList
76-
DeleteMessageBox={DeleteMessageBox}
77-
handleResourceDelete={handleResourceDelete}
7870
resource={resource}
7971
moduleTemplates={moduleTemplates}
8072
resourceName={resourceName}
8173
selectedModules={selectedModules}
8274
kymaResource={kymaResource}
8375
namespaced={namespaced}
84-
detailsOpen={detailsOpen}
8576
resourceUrl={resourceUrl}
86-
kymaResourceState={kymaResourceState}
8777
setOpenedModuleIndex={setOpenedModuleIndex}
88-
setKymaResourceState={setKymaResourceState}
89-
handleModuleUninstall={handleModuleUninstall}
90-
setInitialUnchangedResource={setInitialUnchangedResource}
78+
handleResourceDelete={handleResourceDelete}
9179
/>
9280
),
9381
]}

src/components/KymaModules/components/ModulesListDeleteBox.tsx renamed to src/components/KymaModules/components/ModulesDeleteBox.tsx

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ import pluralize from 'pluralize';
2424
import { useDelete } from 'shared/hooks/BackendAPI/useMutation';
2525
import { cloneDeep } from 'lodash';
2626
import { KymaResourceType, ModuleTemplateListType } from '../support';
27+
import { SetterOrUpdater } from 'recoil';
28+
import { ColumnLayoutState } from 'state/columnLayoutAtom';
2729

2830
type ModulesListDeleteBoxProps = {
2931
DeleteMessageBox: React.FC<any>;
@@ -32,19 +34,23 @@ type ModulesListDeleteBoxProps = {
3234
chosenModuleIndex: number | null;
3335
kymaResource: KymaResourceType;
3436
kymaResourceState: KymaResourceType;
37+
detailsOpen: boolean;
38+
setLayoutColumn: SetterOrUpdater<ColumnLayoutState>;
3539
handleModuleUninstall: () => void;
3640
setChosenModuleIndex: React.Dispatch<React.SetStateAction<number | null>>;
3741
setInitialUnchangedResource: React.Dispatch<React.SetStateAction<any>>;
3842
setKymaResourceState: React.Dispatch<React.SetStateAction<any>>;
3943
};
4044

41-
export const ModulesListDeleteBox = ({
45+
export const ModulesDeleteBox = ({
4246
DeleteMessageBox,
4347
moduleTemplates,
4448
selectedModules,
4549
chosenModuleIndex,
4650
kymaResource,
4751
kymaResourceState,
52+
detailsOpen,
53+
setLayoutColumn,
4854
handleModuleUninstall,
4955
setChosenModuleIndex,
5056
setKymaResourceState,
@@ -106,7 +112,7 @@ export const ModulesListDeleteBox = ({
106112

107113
setResourceCounts(counts);
108114
setForceDeleteUrls(urls);
109-
setCrUrls(crUrl);
115+
setCrUrls(Array.isArray(crUrl) ? crUrl : [crUrl]);
110116
};
111117

112118
fetchCounts();
@@ -239,6 +245,14 @@ export const ModulesListDeleteBox = ({
239245
});
240246
handleModuleUninstall();
241247
setInitialUnchangedResource(cloneDeep(kymaResourceState));
248+
if (detailsOpen) {
249+
setLayoutColumn({
250+
layout: 'OneColumn',
251+
startColumn: null,
252+
midColumn: null,
253+
endColumn: null,
254+
});
255+
}
242256
if (allowForceDelete && forceDeleteUrls.length > 0) {
243257
deleteCrResources(deleteResourceMutation, crUrls);
244258
}

src/components/KymaModules/components/ModulesList.tsx

Lines changed: 2 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import React, { useState } from 'react';
2-
import { createPortal } from 'react-dom';
1+
import React from 'react';
32
import { useTranslation } from 'react-i18next';
43
import { useSetRecoilState } from 'recoil';
54
import jsyaml from 'js-yaml';
@@ -16,7 +15,6 @@ import {
1615
} from '../support';
1716
import { UnmanagedModuleInfo } from './UnmanagedModuleInfo';
1817
import { ModuleStatus, resolveType } from './ModuleStatus';
19-
import { ModulesListDeleteBox } from './ModulesListDeleteBox';
2018
import { useModulesReleaseQuery } from '../kymaModulesQueries';
2119
import { useUrl } from 'hooks/useUrl';
2220
import { extractApiGroupVersion } from 'resources/Roles/helpers';
@@ -44,40 +42,28 @@ type CustomResourceDefinitionsType = {
4442
};
4543

4644
type ModulesListProps = {
47-
DeleteMessageBox: React.FC<any>;
4845
resource: KymaResourceType;
4946
moduleTemplates: ModuleTemplateListType;
5047
resourceName: string;
5148
selectedModules: { name: string }[];
5249
kymaResource: KymaResourceType;
5350
namespaced: boolean;
54-
detailsOpen: boolean;
5551
resourceUrl: string;
56-
kymaResourceState: KymaResourceType;
5752
setOpenedModuleIndex: React.Dispatch<
5853
React.SetStateAction<number | undefined>
5954
>;
60-
setKymaResourceState: React.Dispatch<React.SetStateAction<any>>;
61-
handleModuleUninstall: () => void;
62-
setInitialUnchangedResource: React.Dispatch<React.SetStateAction<any>>;
6355
handleResourceDelete: (resourceData: any) => void;
6456
};
6557

6658
export const ModulesList = ({
67-
DeleteMessageBox,
6859
resource,
6960
moduleTemplates,
7061
resourceName,
7162
selectedModules,
7263
kymaResource,
7364
namespaced,
74-
detailsOpen,
7565
resourceUrl,
76-
kymaResourceState,
7766
setOpenedModuleIndex,
78-
setKymaResourceState,
79-
handleModuleUninstall,
80-
setInitialUnchangedResource,
8167
handleResourceDelete,
8268
}: ModulesListProps) => {
8369
const { t } = useTranslation();
@@ -100,9 +86,6 @@ export const ModulesList = ({
10086
const { clusterUrl, namespaceUrl } = useUrl();
10187
const setLayoutColumn = useSetRecoilState(columnLayoutState);
10288
const setIsFormOpen = useSetRecoilState(isFormOpenState);
103-
const [chosenModuleIndex, setChosenModuleIndex] = useState<number | null>(
104-
null,
105-
);
10689

10790
const handleShowAddModule = () => {
10891
setLayoutColumn({
@@ -313,7 +296,7 @@ export const ModulesList = ({
313296
const index = selectedModules?.findIndex(kymaResourceModule => {
314297
return kymaResourceModule.name === resource.name;
315298
});
316-
setChosenModuleIndex(index);
299+
setOpenedModuleIndex(index);
317300
handleResourceDelete({});
318301
},
319302
},
@@ -429,22 +412,6 @@ export const ModulesList = ({
429412

430413
return (
431414
<React.Fragment key="modules-list">
432-
{!detailsOpen &&
433-
createPortal(
434-
<ModulesListDeleteBox
435-
DeleteMessageBox={DeleteMessageBox}
436-
handleModuleUninstall={handleModuleUninstall}
437-
selectedModules={selectedModules}
438-
chosenModuleIndex={chosenModuleIndex}
439-
kymaResource={kymaResource}
440-
kymaResourceState={kymaResourceState}
441-
setKymaResourceState={setKymaResourceState}
442-
setInitialUnchangedResource={setInitialUnchangedResource}
443-
setChosenModuleIndex={setChosenModuleIndex}
444-
moduleTemplates={moduleTemplates}
445-
/>,
446-
document.body,
447-
)}
448415
<div className="sap-margin-small">
449416
<UnmanagedModuleInfo kymaResource={kymaResource} />
450417
</div>

0 commit comments

Comments
 (0)