diff --git a/packages/core/src/renderer/components/+workloads-overview/workloads/implementations/pods-workload.injectable.ts b/packages/core/src/renderer/components/+workloads-overview/workloads/implementations/pods-workload.injectable.ts index 246469b9e7..eac892307c 100644 --- a/packages/core/src/renderer/components/+workloads-overview/workloads/implementations/pods-workload.injectable.ts +++ b/packages/core/src/renderer/components/+workloads-overview/workloads/implementations/pods-workload.injectable.ts @@ -6,37 +6,23 @@ import { getInjectable } from "@ogre-tools/injectable"; import { workloadInjectionToken } from "../workload-injection-token"; import { ResourceNames } from "../../../../utils/rbac"; import navigateToPodsInjectable from "../../../../../common/front-end-routing/routes/cluster/workloads/pods/navigate-to-pods.injectable"; -import namespaceStoreInjectable from "../../../+namespaces/store.injectable"; -import { computed } from "mobx"; -import podStoreInjectable from "../../../+workloads-pods/store.injectable"; +import totalCountOfPodsInSelectedNamespacesInjectable from "../../../+workloads-pods/total-count.injectable"; +import totalStatusesForPodsInSelectedNamespacesInjectable from "../../../+workloads-pods/statuses.injectable"; const podsWorkloadInjectable = getInjectable({ id: "pods-workload", - instantiate: (di) => { - const navigate = di.inject(navigateToPodsInjectable); - const namespaceStore = di.inject(namespaceStoreInjectable); - const store = di.inject(podStoreInjectable); - - return { - resource: { - apiName: "pods", - group: "", - }, - open: navigate, - - amountOfItems: computed( - () => store.getAllByNs(namespaceStore.contextNamespaces).length, - ), - - status: computed(() => - store.getStatuses(store.getAllByNs(namespaceStore.contextNamespaces)), - ), - - title: ResourceNames.pods, - orderNumber: 10, - }; - }, + instantiate: (di) => ({ + resource: { + apiName: "pods", + group: "", + }, + open: di.inject(navigateToPodsInjectable), + amountOfItems: di.inject(totalCountOfPodsInSelectedNamespacesInjectable), + status: di.inject(totalStatusesForPodsInSelectedNamespacesInjectable), + title: ResourceNames.pods, + orderNumber: 10, + }), injectionToken: workloadInjectionToken, }); diff --git a/packages/core/src/renderer/components/+workloads-pods/statuses.injectable.ts b/packages/core/src/renderer/components/+workloads-pods/statuses.injectable.ts new file mode 100644 index 0000000000..6dc88c1a7a --- /dev/null +++ b/packages/core/src/renderer/components/+workloads-pods/statuses.injectable.ts @@ -0,0 +1,18 @@ +/** + * 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 { computed } from "mobx"; +import podStoreInjectable from "./store.injectable"; + +const totalStatusesForPodsInSelectedNamespacesInjectable = getInjectable({ + id: "total-statuses-for-pods-in-selected-namespaces", + instantiate: (di) => { + const podStore = di.inject(podStoreInjectable); + + return computed(() => podStore.getStatuses(podStore.contextItems)); + }, +}); + +export default totalStatusesForPodsInSelectedNamespacesInjectable; diff --git a/packages/core/src/renderer/components/+workloads-pods/total-count.injectable.ts b/packages/core/src/renderer/components/+workloads-pods/total-count.injectable.ts new file mode 100644 index 0000000000..59f4483a51 --- /dev/null +++ b/packages/core/src/renderer/components/+workloads-pods/total-count.injectable.ts @@ -0,0 +1,18 @@ +/** + * 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 { computed } from "mobx"; +import podStoreInjectable from "./store.injectable"; + +const totalCountOfPodsInSelectedNamespacesInjectable = getInjectable({ + id: "total-count-of-pods-in-selected-namespaces", + instantiate: (di) => { + const podStore = di.inject(podStoreInjectable); + + return computed(() => podStore.getTotalCount()); + }, +}); + +export default totalCountOfPodsInSelectedNamespacesInjectable;