UNPKG

@talend/react-cmf

Version:

A framework built on top of best react libraries

63 lines (62 loc) 2.12 kB
"use strict"; 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