@openshift-assisted/ui-lib
Version:
React component library for the Assisted Installer UI
26 lines • 1.54 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.WithErrorBoundary = void 0;
const tslib_1 = require("tslib");
const react_core_1 = require("@patternfly/react-core");
const react_1 = tslib_1.__importDefault(require("react"));
const react_error_boundary_1 = require("react-error-boundary");
const ui_1 = require("../ui");
const ErrorMonitorContext_1 = require("./ErrorMonitorContext");
const getErrorFallbackComponent = ({ title, content = 'There was an internal error', showReloadAction = true, }) => {
const FallbackComponent = ({ resetErrorBoundary }) => {
const primaryAction = showReloadAction ? (react_1.default.createElement(react_core_1.Button, { onClick: resetErrorBoundary, variant: react_core_1.ButtonVariant.link, isInline: true, key: "reset-error-boundary" }, "try again")) : null;
return react_1.default.createElement(ui_1.ErrorState, Object.assign({}, { content, primaryAction, title }));
};
return FallbackComponent;
};
const WithErrorBoundary = (_a) => {
var { children } = _a, props = tslib_1.__rest(_a, ["children"]);
const { captureException } = (0, ErrorMonitorContext_1.useErrorMonitor)();
const errorHandler = (error) => {
captureException(error, props.title);
};
return (react_1.default.createElement(react_error_boundary_1.ErrorBoundary, { FallbackComponent: getErrorFallbackComponent(props), onError: errorHandler }, children));
};
exports.WithErrorBoundary = WithErrorBoundary;
//# sourceMappingURL=WithErrorBoundary.js.map
;