Skip to content

Commit 79a4c1b

Browse files
fix: Module and resource edit opened simultaneously (#3948)
* Check if start column is editing * Handle edit first column in modules * Additional checking added
1 parent 101ce6e commit 79a4c1b

File tree

2 files changed

+35
-9
lines changed

2 files changed

+35
-9
lines changed

src/components/KymaModules/KymaModulesList.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ export default function KymaModulesList({ namespaced }) {
6767
layoutNumber="startColumn"
6868
title={t('kyma-modules.title')}
6969
description={ResourceDescription}
70+
isFirstColumnWithEdit={true}
7071
content={
7172
<>
7273
{kymaResource && (

src/shared/components/DynamicPageComponent/DynamicPageComponent.js

Lines changed: 34 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ export const DynamicPageComponent = ({
110110
protectedResourceWarning,
111111
className,
112112
customActionIfFormOpen,
113+
isFirstColumnWithEdit = false,
113114
}) => {
114115
const navigate = useNavigate();
115116
const [showTitleDescription, setShowTitleDescription] = useState(false);
@@ -128,8 +129,15 @@ export const DynamicPageComponent = ({
128129
);
129130

130131
useEffect(() => {
131-
setSelectedTab(layoutColumn?.showEdit ? 'edit' : 'view');
132-
}, [layoutColumn]);
132+
if (
133+
layoutColumn?.layout !== 'OneColumn' &&
134+
layoutNumber === 'startColumn'
135+
) {
136+
setSelectedTab(editColumn === 'startColumn' ? 'edit' : 'view');
137+
} else {
138+
setSelectedTab(layoutColumn?.showEdit ? 'edit' : 'view');
139+
}
140+
}, [editColumn, layoutNumber, layoutColumn?.layout, layoutColumn?.showEdit]);
133141

134142
const dynamicPageRef = useRef(null);
135143
const tabContainerRef = useRef(null);
@@ -362,31 +370,48 @@ export const DynamicPageComponent = ({
362370

363371
if (newTabName === 'edit') {
364372
const params = new URLSearchParams();
373+
let showEdit = {
374+
resource: null,
375+
};
365376
if (layoutColumn.layout !== 'OneColumn') {
366377
params.set('layout', layoutColumn.layout);
367-
if (title === 'Modules') {
378+
if (isFirstColumnWithEdit) {
379+
params.set('editColumn', 'startColumn');
380+
showEdit = layoutColumn?.showEdit;
381+
} else if (editColumn === 'startColumn') {
368382
params.set('editColumn', 'startColumn');
383+
params.set('showEdit', 'true');
384+
} else {
385+
params.set('showEdit', 'true');
369386
}
387+
} else {
388+
params.set('showEdit', 'true');
370389
}
371-
params.set('showEdit', 'true');
372390

373391
setLayoutColumn({
374392
...layoutColumn,
375-
showEdit: {
376-
resource: null,
377-
},
393+
showEdit,
378394
});
379395
navigate(`${window.location.pathname}?${params.toString()}`);
380396
} else {
397+
let showEdit = null;
398+
const params = new URLSearchParams();
399+
if (isFirstColumnWithEdit) {
400+
showEdit = layoutColumn?.showEdit;
401+
} else if (editColumn === 'startColumn') {
402+
params.set('editColumn', 'startColumn');
403+
}
381404
setLayoutColumn({
382405
...layoutColumn,
383-
showEdit: null,
406+
showEdit,
384407
});
385408
navigate(
386409
`${window.location.pathname}${
387410
layoutColumn.layout === 'OneColumn'
388411
? ''
389-
: '?layout=' + layoutColumn.layout
412+
: '?layout=' +
413+
layoutColumn.layout +
414+
`${params ? '&' + params.toString() : ''}`
390415
}`,
391416
);
392417
}

0 commit comments

Comments
 (0)