diff --git a/src/common/k8s-api/endpoints/ingress-class.api.ts b/src/common/k8s-api/endpoints/ingress-class.api.ts index d23693a9fd..680fb7f686 100644 --- a/src/common/k8s-api/endpoints/ingress-class.api.ts +++ b/src/common/k8s-api/endpoints/ingress-class.api.ts @@ -31,7 +31,6 @@ export class IngressClassApi extends KubeApi { }, { headers: { "content-type": "application/strategic-merge-patch+json", - // "content-type": "application/merge-patch+json", }, }); } @@ -85,7 +84,7 @@ export class IngressClass extends KubeObject = { ingressclasses: { kind: "IngressClass", group: "networking.k8s.io", - namespaced: true, + namespaced: false, }, jobs: { kind: "Job", diff --git a/src/renderer/components/+network-ingresses/ingress-class-menu.injectable.tsx b/src/renderer/components/+network-ingresses/ingress-class-menu.injectable.tsx index 59d9b513c7..17b0db705e 100644 --- a/src/renderer/components/+network-ingresses/ingress-class-menu.injectable.tsx +++ b/src/renderer/components/+network-ingresses/ingress-class-menu.injectable.tsx @@ -19,27 +19,47 @@ import { MenuItem } from "../menu"; import type { IngressClass } from "../../../common/k8s-api/endpoints/ingress-class.api"; import type { KubeObjectMenuProps } from "../kube-object-menu"; import { Icon } from "../icon"; +import hideDetailsInjectable from "../kube-detail-params/hide-details.injectable"; export interface IngressClassMenuProps extends KubeObjectMenuProps { - setDefault(item: IngressClass): void; } -export function NonInjectedIngressClassMenu({ object, toolbar, ...props }: IngressClassMenuProps) { +export interface Dependencies { + setDefault: (item: IngressClass) => void; + hideDetails: () => void; +} + +export function NonInjectedIngressClassMenu( + { + object, + toolbar, + setDefault, + hideDetails, + }: IngressClassMenuProps & Dependencies) { + + function markItemAsDefaultIngressClass() { + setDefault(object); + hideDetails(); + } + return ( - props.setDefault(object)}> - - Set as default - + <> + + + Set as default + + ); } -export const IngressClassMenu = withInjectables<{}, IngressClassMenuProps>(NonInjectedIngressClassMenu, { +export const IngressClassMenu = withInjectables(NonInjectedIngressClassMenu, { getProps: (di, props) => ({ ...props, setDefault: di.inject(ingressClassSetDefaultInjectable), + hideDetails: di.inject(hideDetailsInjectable), }), }); diff --git a/src/renderer/components/+network-ingresses/ingress-class-set-default.injectable.ts b/src/renderer/components/+network-ingresses/ingress-class-set-default.injectable.ts index c2cc72fe61..c40ffd872f 100644 --- a/src/renderer/components/+network-ingresses/ingress-class-set-default.injectable.ts +++ b/src/renderer/components/+network-ingresses/ingress-class-set-default.injectable.ts @@ -12,17 +12,16 @@ export const ingressClassSetDefaultInjectable = getInjectable({ id: "ingressClassSetDefaultInjectable", instantiate(di) { - return async (currentItem: IngressClass) => { - const api = di.inject(ingressClassApiInjectable); - const store = di.inject(ingressClassStoreInjectable); + const api = di.inject(ingressClassApiInjectable); + const store = di.inject(ingressClassStoreInjectable); + return async (currentItem: IngressClass) => { const defaultIngressClassesUpdate = store.items .filter((item: IngressClass) => item.isDefault && currentItem !== item) .map(item => api.setAsDefault({ name: item.getName() }, false)); await Promise.all(defaultIngressClassesUpdate); await api.setAsDefault({ name: currentItem.getName() }); - await store.reloadAll({ force: true }); }; },