mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
fixes & responding to comments
Signed-off-by: Roman <ixrock@gmail.com>
This commit is contained in:
parent
4615fcef1d
commit
fe554cb5f8
@ -31,7 +31,6 @@ export class IngressClassApi extends KubeApi<IngressClass> {
|
|||||||
}, {
|
}, {
|
||||||
headers: {
|
headers: {
|
||||||
"content-type": "application/strategic-merge-patch+json",
|
"content-type": "application/strategic-merge-patch+json",
|
||||||
// "content-type": "application/merge-patch+json",
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -85,7 +84,7 @@ export class IngressClass extends KubeObject<IngressClassMetadata, IngressClassS
|
|||||||
}
|
}
|
||||||
|
|
||||||
getCtrlNs() {
|
getCtrlNs() {
|
||||||
return this.spec?.parameters?.namespace as string;
|
return this.spec?.parameters?.namespace;
|
||||||
}
|
}
|
||||||
|
|
||||||
getCtrlKind() {
|
getCtrlKind() {
|
||||||
|
|||||||
@ -90,7 +90,7 @@ export const apiResourceRecord: Record<KubeResource, KubeApiResourceData> = {
|
|||||||
ingressclasses: {
|
ingressclasses: {
|
||||||
kind: "IngressClass",
|
kind: "IngressClass",
|
||||||
group: "networking.k8s.io",
|
group: "networking.k8s.io",
|
||||||
namespaced: true,
|
namespaced: false,
|
||||||
},
|
},
|
||||||
jobs: {
|
jobs: {
|
||||||
kind: "Job",
|
kind: "Job",
|
||||||
|
|||||||
@ -19,27 +19,47 @@ import { MenuItem } from "../menu";
|
|||||||
import type { IngressClass } from "../../../common/k8s-api/endpoints/ingress-class.api";
|
import type { IngressClass } from "../../../common/k8s-api/endpoints/ingress-class.api";
|
||||||
import type { KubeObjectMenuProps } from "../kube-object-menu";
|
import type { KubeObjectMenuProps } from "../kube-object-menu";
|
||||||
import { Icon } from "../icon";
|
import { Icon } from "../icon";
|
||||||
|
import hideDetailsInjectable from "../kube-detail-params/hide-details.injectable";
|
||||||
|
|
||||||
export interface IngressClassMenuProps extends KubeObjectMenuProps<IngressClass> {
|
export interface IngressClassMenuProps extends KubeObjectMenuProps<IngressClass> {
|
||||||
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 (
|
return (
|
||||||
<MenuItem onClick={() => props.setDefault(object)}>
|
<>
|
||||||
<Icon
|
<MenuItem onClick={markItemAsDefaultIngressClass}>
|
||||||
material="star"
|
<Icon
|
||||||
tooltip="Set as default"
|
material="star"
|
||||||
interactive={toolbar} />
|
tooltip="Set as default"
|
||||||
<span className="title">Set as default</span>
|
interactive={toolbar} />
|
||||||
</MenuItem>
|
<span className="title">Set as default</span>
|
||||||
|
</MenuItem>
|
||||||
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export const IngressClassMenu = withInjectables<{}, IngressClassMenuProps>(NonInjectedIngressClassMenu, {
|
export const IngressClassMenu = withInjectables<Dependencies, IngressClassMenuProps>(NonInjectedIngressClassMenu, {
|
||||||
getProps: (di, props) => ({
|
getProps: (di, props) => ({
|
||||||
...props,
|
...props,
|
||||||
setDefault: di.inject(ingressClassSetDefaultInjectable),
|
setDefault: di.inject(ingressClassSetDefaultInjectable),
|
||||||
|
hideDetails: di.inject(hideDetailsInjectable),
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -12,17 +12,16 @@ export const ingressClassSetDefaultInjectable = getInjectable({
|
|||||||
id: "ingressClassSetDefaultInjectable",
|
id: "ingressClassSetDefaultInjectable",
|
||||||
|
|
||||||
instantiate(di) {
|
instantiate(di) {
|
||||||
return async (currentItem: IngressClass) => {
|
const api = di.inject(ingressClassApiInjectable);
|
||||||
const api = di.inject(ingressClassApiInjectable);
|
const store = di.inject(ingressClassStoreInjectable);
|
||||||
const store = di.inject(ingressClassStoreInjectable);
|
|
||||||
|
|
||||||
|
return async (currentItem: IngressClass) => {
|
||||||
const defaultIngressClassesUpdate = store.items
|
const defaultIngressClassesUpdate = store.items
|
||||||
.filter((item: IngressClass) => item.isDefault && currentItem !== item)
|
.filter((item: IngressClass) => item.isDefault && currentItem !== item)
|
||||||
.map(item => api.setAsDefault({ name: item.getName() }, false));
|
.map(item => api.setAsDefault({ name: item.getName() }, false));
|
||||||
|
|
||||||
await Promise.all(defaultIngressClassesUpdate);
|
await Promise.all(defaultIngressClassesUpdate);
|
||||||
await api.setAsDefault({ name: currentItem.getName() });
|
await api.setAsDefault({ name: currentItem.getName() });
|
||||||
await store.reloadAll({ force: true });
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user