UNPKG

dash-renderer

Version:

render dash components in react

57 lines (56 loc) 1.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = require("react"); var _propTypes = _interopRequireDefault(require("prop-types")); var _actions = require("../../actions"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } class ComponentErrorBoundary extends _react.Component { constructor(props) { super(props); this.state = { myID: props.componentId, oldChildren: null, hasError: false }; } static getDerivedStateFromError(_) { return { hasError: true }; } componentDidCatch(error, info) { var dispatch = this.props.dispatch; dispatch((0, _actions.onError)({ myID: this.state.myID, type: 'frontEnd', error, info })); dispatch(_actions.revert); } componentDidUpdate(prevProps, prevState) { var prevChildren = prevProps.children; if (!this.state.hasError && prevChildren !== prevState.oldChildren && prevChildren !== this.props.children) { /* eslint-disable-next-line react/no-did-update-set-state */ this.setState({ oldChildren: prevChildren }); } } render() { var _this$state = this.state, hasError = _this$state.hasError, oldChildren = _this$state.oldChildren; return hasError ? oldChildren : this.props.children; } } ComponentErrorBoundary.propTypes = { children: _propTypes.default.object, componentId: _propTypes.default.string, error: _propTypes.default.object, dispatch: _propTypes.default.func }; var _default = exports.default = ComponentErrorBoundary;