mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Fix helm release data being stale after reopening details
Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
parent
df1b947870
commit
221570503b
@ -11,6 +11,7 @@ import { Link } from "react-router-dom";
|
||||
import { DrawerItem, DrawerTitle } from "../../drawer";
|
||||
import { stopPropagation } from "../../../utils";
|
||||
import { observer } from "mobx-react";
|
||||
import type { IAsyncComputed } from "@ogre-tools/injectable-react";
|
||||
import { withInjectables } from "@ogre-tools/injectable-react";
|
||||
import type { ConfigurationInput, MinimalResourceGroup, OnlyUserSuppliedValuesAreShownToggle, ReleaseDetailsModel } from "./release-details-model/release-details-model.injectable";
|
||||
import releaseDetailsModelInjectable from "./release-details-model/release-details-model.injectable";
|
||||
@ -29,10 +30,16 @@ interface ReleaseDetailsContentProps {
|
||||
}
|
||||
|
||||
interface Dependencies {
|
||||
model: ReleaseDetailsModel;
|
||||
computedModel: IAsyncComputed<ReleaseDetailsModel>;
|
||||
}
|
||||
|
||||
const NonInjectedReleaseDetailsContent = observer(({ model }: Dependencies & ReleaseDetailsContentProps) => {
|
||||
const NonInjectedReleaseDetailsContent = observer(({ computedModel }: Dependencies & ReleaseDetailsContentProps) => {
|
||||
const model = computedModel.value.get();
|
||||
|
||||
if (!model) {
|
||||
return <Spinner center data-testid="helm-release-detail-content-spinner" />;
|
||||
}
|
||||
|
||||
const loadingError = model.loadingError.get();
|
||||
|
||||
if (loadingError) {
|
||||
@ -110,11 +117,9 @@ const NonInjectedReleaseDetailsContent = observer(({ model }: Dependencies & Rel
|
||||
});
|
||||
|
||||
export const ReleaseDetailsContent = withInjectables<Dependencies, ReleaseDetailsContentProps>(NonInjectedReleaseDetailsContent, {
|
||||
getPlaceholder: () => <Spinner center data-testid="helm-release-detail-content-spinner" />,
|
||||
|
||||
getProps: async (di, props) => ({
|
||||
model: await di.inject(releaseDetailsModelInjectable, props.targetRelease),
|
||||
getProps: (di, props) => ({
|
||||
...props,
|
||||
computedModel: di.inject(releaseDetailsModelInjectable, props.targetRelease),
|
||||
}),
|
||||
});
|
||||
|
||||
|
||||
@ -31,11 +31,12 @@ import assert from "assert";
|
||||
import activeThemeInjectable from "../../../../themes/active.injectable";
|
||||
import type { ToHelmRelease } from "../../to-helm-release.injectable";
|
||||
import toHelmReleaseInjectable from "../../to-helm-release.injectable";
|
||||
import { asyncComputed } from "@ogre-tools/injectable-react";
|
||||
|
||||
const releaseDetailsModelInjectable = getInjectable({
|
||||
id: "release-details-model",
|
||||
|
||||
instantiate: async (di, targetRelease: TargetHelmRelease) => {
|
||||
instantiate: (di, targetRelease: TargetHelmRelease) => {
|
||||
const model = new ReleaseDetailsModel({
|
||||
requestDetailedHelmRelease: di.inject(requestDetailedHelmReleaseInjectable),
|
||||
targetRelease,
|
||||
@ -50,9 +51,14 @@ const releaseDetailsModelInjectable = getInjectable({
|
||||
toHelmRelease: di.inject(toHelmReleaseInjectable),
|
||||
});
|
||||
|
||||
await model.load();
|
||||
return asyncComputed({
|
||||
getValueFromObservedPromise: async () => {
|
||||
await model.load();
|
||||
|
||||
return model;
|
||||
return model;
|
||||
},
|
||||
betweenUpdates: "show-latest-value",
|
||||
});
|
||||
},
|
||||
|
||||
lifecycle: lifecycleEnum.keyedSingleton({
|
||||
|
||||
Loading…
Reference in New Issue
Block a user