1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Refactor secrets to observable map

Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
This commit is contained in:
Lauri Nevala 2021-03-02 09:12:52 +02:00
parent 592a1a7488
commit 576d9c7b68

View File

@ -13,18 +13,20 @@ interface Props {
@observer @observer
export class PodDetailsSecrets extends Component<Props> { export class PodDetailsSecrets extends Component<Props> {
@observable secrets: Secret[] = []; @observable secrets: Map<string, Secret> = observable.map<string, Secret>();
@disposeOnUnmount @disposeOnUnmount
secretsLoader = autorun(async () => { secretsLoader = autorun(async () => {
const { pod } = this.props; const { pod } = this.props;
this.secrets = (await Promise.all( const secrets = await Promise.all(
pod.getSecrets().map(secretName => secretsApi.get({ pod.getSecrets().map(secretName => secretsApi.get({
name: secretName, name: secretName,
namespace: pod.getNs(), namespace: pod.getNs(),
})) }))
)).filter(Boolean); );
secrets.forEach(secret => secret && this.secrets.set(secret.getName(), secret));
}); });
render() { render() {
@ -34,13 +36,13 @@ export class PodDetailsSecrets extends Component<Props> {
<div className="PodDetailsSecrets"> <div className="PodDetailsSecrets">
{ {
pod.getSecrets().map(secretName => { pod.getSecrets().map(secretName => {
const secret = this.secrets.find(secret => secret.getName() === secretName); const secret = this.secrets.get(secretName);
if (secret) { if (secret) {
return this.renderSecretLink(secret); return this.renderSecretLink(secret);
} else { } else {
return ( return (
<span>{secretName}</span> <span key={secretName}>{secretName}</span>
); );
} }
}) })