71 lines
2.3 KiB
JavaScript
71 lines
2.3 KiB
JavaScript
"use strict";
|
|
"use client";
|
|
|
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.default = void 0;
|
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/callSuper"));
|
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
var React = _interopRequireWildcard(require("react"));
|
|
var _Alert = _interopRequireDefault(require("./Alert"));
|
|
let ErrorBoundary = /*#__PURE__*/function (_React$Component) {
|
|
function ErrorBoundary() {
|
|
var _this;
|
|
(0, _classCallCheck2.default)(this, ErrorBoundary);
|
|
_this = (0, _callSuper2.default)(this, ErrorBoundary, arguments);
|
|
_this.state = {
|
|
error: undefined,
|
|
info: {
|
|
componentStack: ''
|
|
}
|
|
};
|
|
return _this;
|
|
}
|
|
(0, _inherits2.default)(ErrorBoundary, _React$Component);
|
|
return (0, _createClass2.default)(ErrorBoundary, [{
|
|
key: "componentDidCatch",
|
|
value: function componentDidCatch(error, info) {
|
|
this.setState({
|
|
error,
|
|
info
|
|
});
|
|
}
|
|
}, {
|
|
key: "render",
|
|
value: function render() {
|
|
const {
|
|
message,
|
|
description,
|
|
id,
|
|
children
|
|
} = this.props;
|
|
const {
|
|
error,
|
|
info
|
|
} = this.state;
|
|
const componentStack = (info === null || info === void 0 ? void 0 : info.componentStack) || null;
|
|
const errorMessage = typeof message === 'undefined' ? (error || '').toString() : message;
|
|
const errorDescription = typeof description === 'undefined' ? componentStack : description;
|
|
if (error) {
|
|
return /*#__PURE__*/React.createElement(_Alert.default, {
|
|
id: id,
|
|
type: "error",
|
|
message: errorMessage,
|
|
description: /*#__PURE__*/React.createElement("pre", {
|
|
style: {
|
|
fontSize: '0.9em',
|
|
overflowX: 'auto'
|
|
}
|
|
}, errorDescription)
|
|
});
|
|
}
|
|
return children;
|
|
}
|
|
}]);
|
|
}(React.Component);
|
|
var _default = exports.default = ErrorBoundary; |