mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Remove observable.map in PodDetailsSecrets
Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
parent
6672987cd9
commit
c2fdccd163
@ -7,7 +7,7 @@ import "./pod-details-secrets.scss";
|
|||||||
|
|
||||||
import React, { useEffect, useState } from "react";
|
import React, { useEffect, useState } from "react";
|
||||||
import { Link } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
import { autorun, observable } from "mobx";
|
import { reaction } from "mobx";
|
||||||
import { observer } from "mobx-react";
|
import { observer } from "mobx-react";
|
||||||
import { Pod, Secret, secretsApi } from "../../../common/k8s-api/endpoints";
|
import { Pod, Secret, secretsApi } from "../../../common/k8s-api/endpoints";
|
||||||
import { getDetailsUrl } from "../kube-detail-params";
|
import { getDetailsUrl } from "../kube-detail-params";
|
||||||
@ -17,18 +17,27 @@ export interface PodDetailsSecretsProps {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export const PodDetailsSecrets = observer(({ pod }: PodDetailsSecretsProps) => {
|
export const PodDetailsSecrets = observer(({ pod }: PodDetailsSecretsProps) => {
|
||||||
const [secrets] = useState(observable.map<string, Secret>());
|
const [secrets, setSecrets] = useState(new Map<string, Secret>());
|
||||||
|
|
||||||
useEffect(() => autorun(async () => {
|
useEffect(() => (
|
||||||
const podSecrets = await Promise.all(
|
reaction(
|
||||||
pod.getSecrets().map(secretName => secretsApi.get({
|
() => pod.getSecrets(),
|
||||||
name: secretName,
|
async (secretNames) => {
|
||||||
namespace: pod.getNs(),
|
const results = await Promise.allSettled(
|
||||||
})),
|
secretNames.map(secretName => secretsApi.get({
|
||||||
);
|
name: secretName,
|
||||||
|
namespace: pod.getNs(),
|
||||||
|
})),
|
||||||
|
);
|
||||||
|
|
||||||
secrets.replace(podSecrets.filter(Boolean).map(secret => [secret.getName(), secret]));
|
setSecrets(new Map(
|
||||||
}), []);
|
results
|
||||||
|
.filter(result => result.status === "fulfilled" && result.value)
|
||||||
|
.map(result => (result as PromiseFulfilledResult<Secret>).value)
|
||||||
|
.map(secret => [secret.getName(), secret]),
|
||||||
|
));
|
||||||
|
})
|
||||||
|
), []);
|
||||||
|
|
||||||
const renderSecret = (name: string) => {
|
const renderSecret = (name: string) => {
|
||||||
const secret = secrets.get(name);
|
const secret = secrets.get(name);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user