@talend/react-cmf
Version:
A framework built on top of best react libraries
63 lines (62 loc) • 2.12 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = require("react");
var _propTypes = _interopRequireDefault(require("prop-types"));
var _onError = _interopRequireDefault(require("../../onError"));
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
/**
* reload is an event handler. It will reload the current page
*/function reload() {
location.reload(true);
}
function ErrorPanel({
error = {}
}) {
const [url, setURL] = (0, _react.useState)();
(0, _react.useEffect)(() => {
const newUrl = _onError.default.createObjectURL(error);
setURL(newUrl);
return () => {
_onError.default.revokeObjectURL(newUrl);
};
}, [error]);
const HAS_REPORT = _onError.default.hasReportFeature();
return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("p", {
className: "error-title",
children: [error.name, ": ", error.message]
}), HAS_REPORT && /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
children: "The error report has been sent."
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("p", {
children: "From here you can either refresh or contact the support."
}), /*#__PURE__*/(0, _jsxRuntime.jsx)("button", {
className: "btn btn-danger btn-inverse",
onClick: reload,
"data-feature": "refresh-on-error",
style: {
margin: 20
},
children: "Refresh"
}), !HAS_REPORT && /*#__PURE__*/(0, _jsxRuntime.jsx)("a", {
className: "btn btn-primary btn-inverse",
href: url,
download: "report.json",
"data-feature": "download-on-error-details",
children: "Download details"
})]
});
}
ErrorPanel.displayName = 'ErrorPanel';
ErrorPanel.propTypes = {
error: _propTypes.default.shape({
name: _propTypes.default.string,
message: _propTypes.default.string,
stack: _propTypes.default.string
}).isRequired
};
var _default = exports.default = ErrorPanel;
//# sourceMappingURL=ErrorPanel.component.js.map
;