infinity-forge
Version:
31 lines • 1.16 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useErrorBoundary = useErrorBoundary;
var react_1 = require("react");
var assertErrorBoundaryContext_1 = require("./assertErrorBoundaryContext.js");
var ErrorBoundaryContext_1 = require("./ErrorBoundaryContext.js");
function useErrorBoundary() {
var context = (0, react_1.useContext)(ErrorBoundaryContext_1.ErrorBoundaryContext);
(0, assertErrorBoundaryContext_1.assertErrorBoundaryContext)(context);
var _a = (0, react_1.useState)({
error: null,
hasError: false,
}), state = _a[0], setState = _a[1];
var memoized = (0, react_1.useMemo)(function () { return ({
resetBoundary: function () {
context.resetErrorBoundary();
setState({ error: null, hasError: false });
},
showBoundary: function (error) {
return setState({
error: error,
hasError: true,
});
},
}); }, [context.resetErrorBoundary]);
if (state.hasError) {
throw state.error;
}
return memoized;
}
//# sourceMappingURL=useErrorBoundary.js.map