opendash
Version:
open.DASH data visualization framework
64 lines • 2.73 kB
JavaScript
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
import * as React from "react";
import { equals } from "..";
import { ErrorLayout } from "./ErrorBoundary.layout";
var ErrorBoundary = /** @class */ (function (_super) {
__extends(ErrorBoundary, _super);
function ErrorBoundary() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.state = { error: undefined };
_this.resetState = function (goHome) {
if (goHome === void 0) { goHome = false; }
if (goHome) {
return void (window.location.href = "/");
}
_this.setState({ error: null });
if (_this.props.onErrorReset) {
_this.props.onErrorReset();
}
// TODO implement goHome
};
return _this;
}
ErrorBoundary.getDerivedStateFromError = function (error) {
return { error: error };
};
ErrorBoundary.prototype.componentDidUpdate = function (prevProps) {
if (this.state.error &&
this.props.dependencies &&
prevProps.dependencies &&
!equals(prevProps.dependencies, this.props.dependencies)) {
this.setState({ error: null });
}
};
ErrorBoundary.prototype.componentDidCatch = function (error, info) {
// console.error("ErrorBoundary error", error);
// console.error("ErrorBoundary info", info);
};
ErrorBoundary.prototype.render = function () {
var _a;
if (this.state.error) {
// You can render any custom fallback UI
return (React.createElement(ErrorLayout, { reset: this.resetState },
React.createElement("h1", null, "Error"),
((_a = this.state.error) === null || _a === void 0 ? void 0 : _a.message) && React.createElement("h2", null, this.state.error.message),
React.createElement("pre", null, this.state.error.stack)));
}
return this.props.children;
};
return ErrorBoundary;
}(React.Component));
export { ErrorBoundary };
//# sourceMappingURL=ErrorBoundary.js.map