ErrorBoundary.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. "use strict";
  2. "use client";
  3. var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
  4. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
  5. Object.defineProperty(exports, "__esModule", {
  6. value: true
  7. });
  8. exports.default = void 0;
  9. var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
  10. var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
  11. var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/callSuper"));
  12. var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
  13. var React = _interopRequireWildcard(require("react"));
  14. var _Alert = _interopRequireDefault(require("./Alert"));
  15. let ErrorBoundary = /*#__PURE__*/function (_React$Component) {
  16. function ErrorBoundary() {
  17. var _this;
  18. (0, _classCallCheck2.default)(this, ErrorBoundary);
  19. _this = (0, _callSuper2.default)(this, ErrorBoundary, arguments);
  20. _this.state = {
  21. error: undefined,
  22. info: {
  23. componentStack: ''
  24. }
  25. };
  26. return _this;
  27. }
  28. (0, _inherits2.default)(ErrorBoundary, _React$Component);
  29. return (0, _createClass2.default)(ErrorBoundary, [{
  30. key: "componentDidCatch",
  31. value: function componentDidCatch(error, info) {
  32. this.setState({
  33. error,
  34. info
  35. });
  36. }
  37. }, {
  38. key: "render",
  39. value: function render() {
  40. const {
  41. message,
  42. description,
  43. id,
  44. children
  45. } = this.props;
  46. const {
  47. error,
  48. info
  49. } = this.state;
  50. const componentStack = (info === null || info === void 0 ? void 0 : info.componentStack) || null;
  51. const errorMessage = typeof message === 'undefined' ? (error || '').toString() : message;
  52. const errorDescription = typeof description === 'undefined' ? componentStack : description;
  53. if (error) {
  54. return /*#__PURE__*/React.createElement(_Alert.default, {
  55. id: id,
  56. type: "error",
  57. message: errorMessage,
  58. description: /*#__PURE__*/React.createElement("pre", {
  59. style: {
  60. fontSize: '0.9em',
  61. overflowX: 'auto'
  62. }
  63. }, errorDescription)
  64. });
  65. }
  66. return children;
  67. }
  68. }]);
  69. }(React.Component);
  70. var _default = exports.default = ErrorBoundary;