Skip to content

Commit 33ce1ab

Browse files
authored
fix: Stay in all-namespaces after clicking on list item (kyma-project#3807)
* fix: set namespace to -all- in url for navgiation of generic list * fix: temporary fix for allNamespaces refresh * fix: typo
1 parent 45c08ee commit 33ce1ab

File tree

4 files changed

+20
-17
lines changed

4 files changed

+20
-17
lines changed

src/resources/createResourceRoutes.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,8 @@ const ColumnWrapper = ({ list, details, create, ...props }) => {
5858
resourceName: resourceName,
5959
});
6060

61-
const defaultColumn = resourceName ? 'details' : 'list';
61+
const defaultColumn =
62+
resourceName && namespaceId !== '-all-' ? 'details' : 'list';
6263

6364
const layoutCloseCreateUrl = resourceListUrl({
6465
kind: props.resourceType,

src/shared/components/GenericList/GenericList.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -310,11 +310,12 @@ export const GenericList = ({
310310
isResourceEditedState,
311311
);
312312
const [isFormOpen, setIsFormOpen] = useRecoilState(isFormOpenState);
313-
const { resourceUrl: resourceUrlFn } = useUrl();
313+
const { resourceUrl: resourceUrlFn, namespace } = useUrl();
314314
const linkTo = entry => {
315+
const overrides = namespace === '-all-' ? { namespace } : {};
315316
return customUrl
316317
? customUrl(entry)
317-
: resourceUrlFn(entry, { resourceType });
318+
: resourceUrlFn(entry, { resourceType, ...overrides });
318319
};
319320

320321
const handleRowClick = e => {

src/shared/hooks/usePrepareLayout.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,8 @@ export function usePrepareLayoutColumns({
100100
const navigationType = useNavigationType();
101101

102102
const newLayoutState = useMemo(() => {
103-
if (!layout || layout === 'OneColumn') {
103+
const isAllNamespaces = namespaceId === '-all-';
104+
if (!layout || layout === 'OneColumn' || isAllNamespaces) {
104105
return {
105106
layout: 'OneColumn',
106107
startColumn: {
@@ -221,7 +222,9 @@ export function usePrepareLayoutColumns({
221222
useEffect(() => {
222223
setLayoutColumn(newLayoutState);
223224
setIsFormOpen({
224-
formOpen: !!newLayoutState.showCreate || !!newLayoutState.showEdit,
225+
formOpen:
226+
namespaceId !== '-all-' &&
227+
(!!newLayoutState.showCreate || !!newLayoutState.showEdit),
225228
});
226229
// eslint-disable-next-line react-hooks/exhaustive-deps
227230
}, []);

src/sidebar/SidebarNavigation.tsx

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,10 @@ export function SidebarNavigation() {
138138
isFormOpen,
139139
setIsFormOpen,
140140
() => {
141+
const newNamespace =
142+
e.target.value === t('navigation.all-namespaces')
143+
? '-all-'
144+
: e.target.value;
141145
setLayoutColumn(prevState => ({
142146
startColumn: {
143147
resourceType:
@@ -146,23 +150,17 @@ export function SidebarNavigation() {
146150
prevState.startColumn?.resourceName ?? null,
147151
apiGroup: prevState.startColumn?.apiGroup ?? null,
148152
apiVersion: prevState.startColumn?.apiVersion ?? null,
149-
namespaceId: e.target.value,
153+
namespaceId: newNamespace,
150154
},
151155
midColumn: null,
152156
endColumn: null,
153157
layout: 'OneColumn',
154158
}));
155-
return e.target.value === t('navigation.all-namespaces')
156-
? navigate(
157-
namespaceUrl(resourceType, {
158-
namespace: '-all-',
159-
}),
160-
)
161-
: navigate(
162-
namespaceUrl(resourceType, {
163-
namespace: e.target.value ?? undefined,
164-
}),
165-
);
159+
return navigate(
160+
namespaceUrl(resourceType, {
161+
namespace: newNamespace,
162+
}),
163+
);
166164
},
167165
);
168166
}}

0 commit comments

Comments
 (0)