1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

fix bug - deleted namespace does not get auto unselected

Signed-off-by: Yangjun Wang <yangjun.wang@wartsila.com>
This commit is contained in:
Yangjun Wang 2020-09-19 12:47:49 +03:00
parent bddc6b33e3
commit f1ee637122

View File

@ -27,29 +27,32 @@ export class NamespaceStore extends KubeObjectStore<Namespace> {
this.updateUrl(namespaces); this.updateUrl(namespaces);
// sync with local-storage & url-search-params // sync with local-storage & url-search-params
reaction(() => this.contextNs.toJS(), namespaces => { reaction(
this.storage.set(namespaces); () => this.contextNs.toJS(),
this.updateUrl(namespaces); (namespaces) => {
}); this.storage.set(namespaces);
this.updateUrl(namespaces);
}
);
} }
getContextParams(): Partial<IQueryParams> { getContextParams(): Partial<IQueryParams> {
return { return {
namespaces: this.contextNs namespaces: this.contextNs,
} };
} }
protected updateUrl(namespaces: string[]) { protected updateUrl(namespaces: string[]) {
setQueryParams({ namespaces }, { replace: true }) setQueryParams({ namespaces }, { replace: true });
} }
protected async loadItems(namespaces?: string[]) { protected async loadItems(namespaces?: string[]) {
if (!isAllowedResource("namespaces")) { if (!isAllowedResource("namespaces")) {
if (namespaces) return namespaces.map(this.getDummyNamespace); if (namespaces) return namespaces.map(this.getDummyNamespace);
return [] return [];
} }
if (namespaces) { if (namespaces) {
return Promise.all(namespaces.map(name => this.api.get({ name }))) return Promise.all(namespaces.map((name) => this.api.get({ name })));
} else { } else {
return super.loadItems(); return super.loadItems();
} }
@ -63,9 +66,9 @@ export class NamespaceStore extends KubeObjectStore<Namespace> {
name: name, name: name,
uid: "", uid: "",
resourceVersion: "", resourceVersion: "",
selfLink: `/api/v1/namespaces/${name}` selfLink: `/api/v1/namespaces/${name}`,
} },
}) });
} }
setContext(namespaces: string[]) { setContext(namespaces: string[]) {
@ -74,7 +77,7 @@ export class NamespaceStore extends KubeObjectStore<Namespace> {
hasContext(namespace: string | string[]) { hasContext(namespace: string | string[]) {
const context = Array.isArray(namespace) ? namespace : [namespace]; const context = Array.isArray(namespace) ? namespace : [namespace];
return context.every(namespace => this.contextNs.includes(namespace)); return context.every((namespace) => this.contextNs.includes(namespace));
} }
toggleContext(namespace: string) { toggleContext(namespace: string) {
@ -87,6 +90,11 @@ export class NamespaceStore extends KubeObjectStore<Namespace> {
super.reset(); super.reset();
this.contextNs.clear(); this.contextNs.clear();
} }
async remove(item: Namespace) {
await super.remove(item);
this.contextNs.remove(item.getName());
}
} }
export const namespaceStore = new NamespaceStore(); export const namespaceStore = new NamespaceStore();