UNPKG

infinity-forge

Version:
31 lines 1.16 kB
"use strict"; 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