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

Render only secret name on pod details without access to secrets (#2244)

* Render only secret name on pod details without access to secrets

Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>

* Preserving layout when amount of secrets passed

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>

* Refactor secrets to observable map

Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>

Co-authored-by: Alex Andreev <alex.andreev.email@gmail.com>
This commit is contained in:
Lauri Nevala 2021-03-03 15:40:19 +02:00 committed by Jari Kolehmainen
parent df20dd6b11
commit 4c7c2d1084
2 changed files with 26 additions and 10 deletions

View File

@ -1,7 +1,7 @@
.PodDetailsSecrets {
a {
> * {
display: block;
margin-bottom: $margin;
margin-bottom: var(--margin);
&:last-child {
margin-bottom: 0;

View File

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