UNPKG

@boomerang-io/carbon-addons-boomerang-react

Version:
48 lines (41 loc) 1.62 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var React = require('react'); var settings = require('../../internal/settings.js'); var ErrorMessage = require('../ErrorMessage/ErrorMessage.js'); function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } var React__default = /*#__PURE__*/_interopDefault(React); /* IBM Confidential 694970X, 69497O0 © Copyright IBM Corp. 2022, 2024 */ /** * todo: convert this to hooks in the future. * As of now getDerivedStateFromError not available via hooks */ class ErrorBoundary extends React.Component { state = { hasError: false, error: {}, }; static defaultProps = { className: `${settings.prefix}--bmrg-error-boundary`, }; static getDerivedStateFromError(error) { // Update state so the next render will show the fallback UI. return { hasError: true, error }; } componentDidCatch(error, info) { console.error(error, info); //eslint-disable-line } render() { const { errorComponent: ErrorComponent = ErrorMessage.default, className, style, errorProps, ...rest } = this.props; if (this.state.hasError) { return (React__default.default.createElement("div", { className: className, style: style, ...rest }, React__default.default.createElement(ErrorComponent, { ...this.props.errorProps }))); } return React__default.default.createElement(React__default.default.Fragment, null, this.props.children); } } exports.default = ErrorBoundary;