diff --git a/packages/core/src/renderer/components/+helm-releases/release-details/release-details-drawer-toolbar.tsx b/packages/core/src/renderer/components/+helm-releases/release-details/release-details-drawer-toolbar.tsx index cb7d5009ec..ddf6d9e096 100644 --- a/packages/core/src/renderer/components/+helm-releases/release-details/release-details-drawer-toolbar.tsx +++ b/packages/core/src/renderer/components/+helm-releases/release-details/release-details-drawer-toolbar.tsx @@ -8,6 +8,7 @@ import "./release-details.scss"; import React from "react"; import { observer } from "mobx-react"; +import type { IAsyncComputed } from "@ogre-tools/injectable-react"; import { withInjectables } from "@ogre-tools/injectable-react"; import type { TargetHelmRelease } from "./target-helm-release.injectable"; import navigateToHelmReleasesInjectable from "../../../../common/front-end-routing/routes/cluster/helm/releases/navigate-to-helm-releases.injectable"; @@ -20,34 +21,37 @@ interface ReleaseDetailsDrawerProps { } interface Dependencies { - model: ReleaseDetailsModel; + computedModel: IAsyncComputed; navigateToHelmReleases: () => void; } const NonInjectedReleaseDetailsDrawerToolbar = observer(({ - model, + computedModel, navigateToHelmReleases, -}: Dependencies & ReleaseDetailsDrawerProps) => ( - model.loadingError.get() - ? null - : ( - - ) -)); +}: Dependencies & ReleaseDetailsDrawerProps) => { + const model = computedModel.value.get(); -export const ReleaseDetailsDrawerToolbar = withInjectables< - Dependencies, - ReleaseDetailsDrawerProps ->(NonInjectedReleaseDetailsDrawerToolbar, { - getPlaceholder: () => <>, + if (!model) { + return null; + } - getProps: async (di, props) => ({ - model: await di.inject(releaseDetailsModelInjectable, props.targetRelease), - navigateToHelmReleases: di.inject(navigateToHelmReleasesInjectable), + if (model.loadingError.get()) { + return null; + } + + return ( + + ); +}); + +export const ReleaseDetailsDrawerToolbar = withInjectables(NonInjectedReleaseDetailsDrawerToolbar, { + getProps: (di, props) => ({ ...props, + computedModel: di.inject(releaseDetailsModelInjectable, props.targetRelease), + navigateToHelmReleases: di.inject(navigateToHelmReleasesInjectable), }), });