mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Choose remove method in namespace store again
Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
This commit is contained in:
parent
a279e09bb6
commit
e4b6541727
@ -0,0 +1,23 @@
|
||||
/**
|
||||
* Copyright (c) OpenLens Authors. All rights reserved.
|
||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||
*/
|
||||
|
||||
import { getInjectable } from "@ogre-tools/injectable";
|
||||
import removeSubnamespaceInjectable from "./remove-subnamespace.injectable";
|
||||
|
||||
// A wrapper injectable to avoid circular dependency loop caused by injection of
|
||||
// removeSubnamespaceInjectable into namespace store.
|
||||
const deleteSubnamespaceInjectable = getInjectable({
|
||||
id: "delete-subnamespace",
|
||||
|
||||
instantiate: (di) => {
|
||||
const removeSubnamespace = di.inject(removeSubnamespaceInjectable);
|
||||
|
||||
return async (namespace: string) => (
|
||||
removeSubnamespace(namespace)
|
||||
)
|
||||
}
|
||||
});
|
||||
|
||||
export default deleteSubnamespaceInjectable;
|
||||
@ -12,6 +12,7 @@ import storesAndApisCanBeCreatedInjectable from "../../stores-apis-can-be-create
|
||||
import clusterFrameContextForClusterScopedResourcesInjectable from "../../cluster-frame-context/for-cluster-scoped-resources.injectable";
|
||||
import clusterConfiguredAccessibleNamespacesInjectable from "../../cluster/accessible-namespaces.injectable";
|
||||
import loggerInjectable from "../../../common/logger.injectable";
|
||||
import deleteSubnamespaceInjectable from "./delete-subnamespace.injectable";
|
||||
|
||||
const namespaceStoreInjectable = getInjectable({
|
||||
id: "namespace-store",
|
||||
@ -27,6 +28,7 @@ const namespaceStoreInjectable = getInjectable({
|
||||
storage: createStorage<string[] | undefined>("selected_namespaces", undefined),
|
||||
clusterConfiguredAccessibleNamespaces: di.inject(clusterConfiguredAccessibleNamespacesInjectable),
|
||||
logger: di.inject(loggerInjectable),
|
||||
deleteSubnamespace: di.inject(deleteSubnamespaceInjectable)
|
||||
}, api);
|
||||
},
|
||||
injectionToken: kubeObjectStoreInjectionToken,
|
||||
|
||||
@ -21,6 +21,7 @@ export interface NamespaceTree {
|
||||
interface Dependencies extends KubeObjectStoreDependencies {
|
||||
readonly storage: StorageLayer<string[] | undefined>;
|
||||
readonly clusterConfiguredAccessibleNamespaces: IComputedValue<string[]>;
|
||||
deleteSubnamespace: (name: string) => Promise<void>
|
||||
}
|
||||
|
||||
export class NamespaceStore extends KubeObjectStore<Namespace, NamespaceApi> {
|
||||
@ -220,7 +221,12 @@ export class NamespaceStore extends KubeObjectStore<Namespace, NamespaceApi> {
|
||||
|
||||
@action
|
||||
async remove(item: Namespace) {
|
||||
await super.remove(item);
|
||||
if (item.isSubnamespace()) {
|
||||
this.dependencies.deleteSubnamespace(item.getName())
|
||||
} else {
|
||||
await super.remove(item);
|
||||
}
|
||||
|
||||
this.clearSelected(item.getName());
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user