Skip to content

Commit 3bae3d1

Browse files
fix: Tab navigation (#3893)
* fix: tab navigation * fix: clearer naming of state variable --------- Co-authored-by: mrCherry97 <mwisnia97@gmail.com>
1 parent d88df2e commit 3bae3d1

File tree

1 file changed

+16
-26
lines changed

1 file changed

+16
-26
lines changed

src/shared/components/DynamicPageComponent/DynamicPageComponent.js

Lines changed: 16 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -121,28 +121,23 @@ export const DynamicPageComponent = ({
121121
const [isFormOpen, setIsFormOpen] = useRecoilState(isFormOpenState);
122122
const { navigateSafely } = useFormNavigation();
123123
const [searchParams] = useSearchParams();
124-
const showEdit = searchParams.get('showEdit');
125124
const editColumn = searchParams.get('editColumn');
126-
const currColumnInfo = layoutColumn[layoutNumber] ?? layoutColumn.startColumn;
127125

128-
const [selectedSectionIdState, setSelectedSectionIdState] = useState(
129-
showEdit &&
130-
currColumnInfo?.resourceName === layoutColumn?.showEdit?.resourceName
131-
? 'edit'
132-
: 'view',
126+
const [selectedTab, setSelectedTab] = useState(
127+
layoutColumn?.showEdit ? 'edit' : 'view',
133128
);
134129

130+
useEffect(() => {
131+
setSelectedTab(layoutColumn?.showEdit ? 'edit' : 'view');
132+
}, [layoutColumn]);
133+
135134
const dynamicPageRef = useRef(null);
136135
const tabContainerRef = useRef(null);
137136
const { headerHeight, tabContainerHeight } = useGetHeaderHeight(
138137
dynamicPageRef,
139138
tabContainerRef,
140139
);
141140

142-
useEffect(() => {
143-
if (showEdit) setSelectedSectionIdState('edit');
144-
}, [showEdit]);
145-
146141
const handleColumnClose = () => {
147142
layoutNumber === 'midColumn'
148143
? setLayoutColumn({
@@ -161,7 +156,10 @@ export const DynamicPageComponent = ({
161156
});
162157

163158
if (layoutCloseUrl) {
164-
navigate(layoutCloseUrl + (editColumn ? `?showEdit=${showEdit}` : ''));
159+
navigate(
160+
layoutCloseUrl +
161+
(editColumn ? `?showEdit=${!!layoutColumn.showEdit}` : ''),
162+
);
165163
return;
166164
}
167165

@@ -351,23 +349,16 @@ export const DynamicPageComponent = ({
351349
isFormOpen,
352350
setIsFormOpen,
353351
);
354-
setSelectedSectionIdState(e.detail.tab.getAttribute('data-mode'));
352+
setSelectedTab(e.detail.tab.getAttribute('data-mode'));
355353
return;
356354
}
357355
if (isFormOpen.formOpen) {
358356
e.preventDefault();
359357
}
360-
if (
361-
showEdit &&
362-
currColumnInfo?.resourceName !==
363-
layoutColumn?.showEdit?.resourceName
364-
) {
365-
return;
366-
}
367358

368359
const newTabName = e.detail.tab.getAttribute('data-mode');
369360
navigateSafely(() => {
370-
setSelectedSectionIdState(newTabName);
361+
setSelectedTab(newTabName);
371362

372363
if (newTabName === 'edit') {
373364
const params = new URLSearchParams();
@@ -382,7 +373,6 @@ export const DynamicPageComponent = ({
382373
setLayoutColumn({
383374
...layoutColumn,
384375
showEdit: {
385-
...currColumnInfo,
386376
resource: null,
387377
},
388378
});
@@ -406,18 +396,18 @@ export const DynamicPageComponent = ({
406396
<Tab
407397
data-mode="view"
408398
text={t('common.tabs.view')}
409-
selected={selectedSectionIdState === 'view'}
399+
selected={selectedTab === 'view'}
410400
></Tab>
411401
<Tab
412402
data-mode="edit"
413403
text={showYamlTab ? t('common.tabs.yaml') : t('common.tabs.edit')}
414-
selected={selectedSectionIdState === 'edit'}
404+
selected={selectedTab === 'edit'}
415405
></Tab>
416406
</TabContainer>
417407

418-
{selectedSectionIdState === 'view' && content}
408+
{selectedTab === 'view' && content}
419409

420-
{selectedSectionIdState === 'edit' &&
410+
{selectedTab === 'edit' &&
421411
inlineEditForm(headerHeight + tabContainerHeight)}
422412
</DynamicPage>
423413
);

0 commit comments

Comments
 (0)