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:
parent
4931f681e4
commit
25a7403f3c
@ -1,7 +1,7 @@
|
|||||||
.PodDetailsSecrets {
|
.PodDetailsSecrets {
|
||||||
a {
|
> * {
|
||||||
display: block;
|
display: block;
|
||||||
margin-bottom: $margin;
|
margin-bottom: var(--margin);
|
||||||
|
|
||||||
&:last-child {
|
&:last-child {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
|
|||||||
@ -13,33 +13,49 @@ 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(),
|
||||||
}))
|
}))
|
||||||
);
|
);
|
||||||
|
|
||||||
|
secrets.forEach(secret => secret && this.secrets.set(secret.getName(), secret));
|
||||||
});
|
});
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
|
const { pod } = this.props;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="PodDetailsSecrets">
|
<div className="PodDetailsSecrets">
|
||||||
{
|
{
|
||||||
this.secrets.map(secret => {
|
pod.getSecrets().map(secretName => {
|
||||||
return (
|
const secret = this.secrets.get(secretName);
|
||||||
<Link key={secret.getId()} to={getDetailsUrl(secret.selfLink)}>
|
|
||||||
{secret.getName()}
|
if (secret) {
|
||||||
</Link>
|
return this.renderSecretLink(secret);
|
||||||
);
|
} else {
|
||||||
|
return (
|
||||||
|
<span key={secretName}>{secretName}</span>
|
||||||
|
);
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected renderSecretLink(secret: Secret) {
|
||||||
|
return (
|
||||||
|
<Link key={secret.getId()} to={getDetailsUrl(secret.selfLink)}>
|
||||||
|
{secret.getName()}
|
||||||
|
</Link>
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user