react-error-boundaries
Version:
React HOC for error boundaries.
120 lines (107 loc) • 3.29 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
exports.default = Fallback;
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _Modal = require('./Modal');
var _Modal2 = _interopRequireDefault(_Modal);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// Fallback.jsx
var containerStyl = {
boxSizing: 'border-box',
backgroundColor: 'rgba(0,0,0,0.75)',
color: '#fff',
position: 'fixed',
height: '100%',
width: '100%',
top: 0,
left: 0,
overflowY: 'auto',
padding: '16px'
};
var btnStyl = {
position: 'absolute',
right: '16px',
top: '35px',
cursor: 'pointer',
minWidth: '40px',
minHeight: '30px',
borderRadius: '5px',
outlineStyle: 'none'
};
var preSty = {
whiteSpace: 'pre-wrap',
wordWrap: 'break-word',
wordBreak: 'break-word',
padding: '0 6px'
};
var detailSty = {
outline: 'none',
WebkitTapHighlightColor: 'transparent',
WebkitHighlight: 'none'
};
function Fallback(props) {
var error = props.error,
errorInfo = props.errorInfo,
closeErrorModal = props.closeErrorModal;
return _react2.default.createElement(
_Modal2.default,
null,
_react2.default.createElement(
'div',
{ style: containerStyl },
_react2.default.createElement(
'button',
{ style: btnStyl, onClick: closeErrorModal },
'Close'
),
_react2.default.createElement(
'div',
null,
_react2.default.createElement(
'h2',
null,
'Something went wrong.'
),
_react2.default.createElement('hr', null),
_react2.default.createElement(
'p',
null,
'ErrorMessage'
),
_react2.default.createElement(
'pre',
{ style: (0, _extends3.default)({}, preSty, { color: '#ff0404' }) },
error.message
),
_react2.default.createElement('hr', null),
_react2.default.createElement(
'p',
null,
'Stack'
),
_react2.default.createElement(
'pre',
{ style: (0, _extends3.default)({}, preSty, { color: '#ff0404' }) },
error.stack
),
_react2.default.createElement('hr', null),
_react2.default.createElement(
'p',
null,
'ComponentStack'
),
_react2.default.createElement(
'pre',
{ style: (0, _extends3.default)({}, preSty, { color: '#f3d429' }) },
errorInfo.componentStack
),
_react2.default.createElement('hr', null)
)
)
);
}