Catches visualization errors.

This commit is contained in:
Henning Dieterichs
2020-03-29 15:07:38 +02:00
parent 4370637d3d
commit 84390b6713

View File

@@ -12,6 +12,11 @@ export class Visualizer extends React.Component<{ model: Model }> {
);
}
componentDidCatch() {
this.props.model.setVisualizationError({ kind: {} });
console.log("broken");
}
renderContent(): JSX.Element {
const s = this.props.model.state;
if (s.kind === "loading") {
@@ -24,6 +29,8 @@ export class Visualizer extends React.Component<{ model: Model }> {
);
} else if (s.kind === "noExpression") {
return <NoData>No Expression Entered</NoData>;
} else if (s.kind === "visualizationError") {
return <NoData>Visualization Error</NoData>;
} else if (s.kind === "noDebugSession") {
return <NoData>No Active Debug Session</NoData>;
} else if (s.kind === "data") {
@@ -32,7 +39,19 @@ export class Visualizer extends React.Component<{ model: Model }> {
return <NoData>No Visualization Available</NoData>;
}
return vis.visualization.render();
try {
return vis.visualization.render();
} catch (e) {
console.error(e);
return (
<NoData>
<>
Visualization Error
<pre>{e.message}</pre>
</>
</NoData>
);
}
} else {
const nvr: never = s;
return <div />;