UNPKG

opendash

Version:

open.DASH data visualization framework

64 lines 2.73 kB
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