Catch and display errors for release details (#3905)

This commit is contained in:
Sebastian Malton authored and GitHub committed 2021-10-12 08:28:32 -04:00
1 parent 329f4706c0
commit 5a25c44de6
4 files changed
+49 -32

No files matched your search

@@ -26,6 +26,11 @@
align-items: center;
}
.loading-error {
color: red;
text-align: center;
}
.status {
@include release-status-bgs;
}
@@ -56,12 +56,13 @@ interface Props {
@observer
export class ReleaseDetails extends Component<Props> {
@observable details: IReleaseDetails;
@observable details: IReleaseDetails | null = null;
@observable values = "";
@observable valuesLoading = false;
@observable showOnlyUserSuppliedValues = true;
@observable saving = false;
@observable releaseSecret: Secret;
@observable error?: string = undefined;
componentDidMount() {
disposeOnUnmount(this, [
@@ -96,9 +97,13 @@ export class ReleaseDetails extends Component<Props> {
async loadDetails() {
const { release } = this.props;
this.details = null;
this.details = await getRelease(release.getName(), release.getNs());
try {
this.details = null;
this.details = await getRelease(release.getName(), release.getNs());
} catch (error) {
this.error = `Failed to get release details: ${error}`;
}
}
async loadValues() {
@@ -237,11 +242,18 @@ export class ReleaseDetails extends Component<Props> {
renderContent() {
const { release } = this.props;
const { details } = this;
if (!release) return null;
if (!details) {
if (this.error) {
return (
<div className="loading-error">
{this.error}
</div>
);
}
if (!this.details) {
return <Spinner center/>;
}