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: {
|
||||
"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() {
|
||||
return this.spec?.parameters?.namespace as string;
|
||||
return this.spec?.parameters?.namespace;
|
||||
}
|
||||
|
||||
getCtrlKind() {
|
||||
|
||||
@ -90,7 +90,7 @@ export const apiResourceRecord: Record<KubeResource, KubeApiResourceData> = {
|
||||
ingressclasses: {
|
||||
kind: "IngressClass",
|
||||
group: "networking.k8s.io",
|
||||
namespaced: true,
|
||||
namespaced: false,
|
||||
},
|
||||
jobs: {
|
||||
kind: "Job",
|
||||
|
||||
@ -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<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 (
|
||||
<MenuItem onClick={() => props.setDefault(object)}>
|
||||
<Icon
|
||||
material="star"
|
||||
tooltip="Set as default"
|
||||
interactive={toolbar} />
|
||||
<span className="title">Set as default</span>
|
||||
</MenuItem>
|
||||
<>
|
||||
<MenuItem onClick={markItemAsDefaultIngressClass}>
|
||||
<Icon
|
||||
material="star"
|
||||
tooltip="Set as default"
|
||||
interactive={toolbar} />
|
||||
<span className="title">Set as default</span>
|
||||
</MenuItem>
|
||||
</>
|
||||
);
|
||||
}
|
||||
|
||||
export const IngressClassMenu = withInjectables<{}, IngressClassMenuProps>(NonInjectedIngressClassMenu, {
|
||||
export const IngressClassMenu = withInjectables<Dependencies, IngressClassMenuProps>(NonInjectedIngressClassMenu, {
|
||||
getProps: (di, props) => ({
|
||||
...props,
|
||||
setDefault: di.inject(ingressClassSetDefaultInjectable),
|
||||
hideDetails: di.inject(hideDetailsInjectable),
|
||||
}),
|
||||
});
|
||||
|
||||
|
||||
@ -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 });
|
||||
};
|
||||
},
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user