From 1444c73e47baa85275d2e8df9976dec111630ab8 Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Tue, 25 Oct 2022 14:01:42 -0400 Subject: [PATCH] Allow use of ResourceMetrics without IAsyncComputed Signed-off-by: Sebastian Malton --- .../components/resource-metrics/resource-metrics.tsx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/renderer/components/resource-metrics/resource-metrics.tsx b/src/renderer/components/resource-metrics/resource-metrics.tsx index 195c97d35b..12f3fd7df6 100644 --- a/src/renderer/components/resource-metrics/resource-metrics.tsx +++ b/src/renderer/components/resource-metrics/resource-metrics.tsx @@ -13,6 +13,7 @@ import { Spinner } from "../spinner"; import type { MetricsTab } from "../chart/options"; import type { MetricData } from "../../../common/k8s-api/endpoints/metrics.api"; import type { IAsyncComputed } from "@ogre-tools/injectable-react"; +import { isComputed } from "mobx"; export type AtLeastOneMetricTab = [MetricsTab, ...MetricsTab[]]; @@ -20,10 +21,14 @@ export interface ResourceMetricsProps { tabs: AtLeastOneMetricTab; object: KubeObject; className?: string; - metrics: IAsyncComputed> | null | undefined>; + metrics: IAsyncComputed> | null | undefined> | Partial>; children: React.ReactChild | React.ReactChild[]; } +function isAsyncComputedMetrics(metrics: IAsyncComputed> | null | undefined> | Partial>): metrics is IAsyncComputed> | null | undefined> { + return isComputed((metrics as any).value); +} + export interface ResourceMetricsValue { object: KubeObject; tab: MetricsTab; @@ -57,7 +62,9 @@ export function ResourceMetrics({ object, tabs, children, c value={{ object, tab, - metrics: metrics.value.get(), + metrics: isAsyncComputedMetrics(metrics) + ? metrics.value.get() + : metrics, }} >