recoil-toolkit
Version:
33 lines • 1.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useResetErrors = exports.useLastError = exports.lastErrorType = exports.lastError = exports.errorStack = exports.ERRORS_STACK_SIZE = void 0;
var recoil_1 = require("recoil");
exports.ERRORS_STACK_SIZE = 100;
exports.errorStack = (0, recoil_1.atom)({
key: '@recoil-toolkit.errorStack',
default: [],
});
exports.lastError = (0, recoil_1.selector)({
key: '@recoil-toolkit.lastError',
get: function (_a) {
var get = _a.get;
var e = get(exports.errorStack);
return e.length > 0 ? e[e.length - 1] : undefined;
},
});
exports.lastErrorType = (0, recoil_1.selectorFamily)({
key: '@recoil-toolkit.lastErrorType',
get: function (key) {
return function (_a) {
var get = _a.get;
return get(exports.errorStack)
.filter(function (e) { return e.key === key; })
.pop();
};
},
});
var useLastError = function (key) { return (0, recoil_1.useRecoilValue)(key ? (0, exports.lastErrorType)(key) : exports.lastError); };
exports.useLastError = useLastError;
var useResetErrors = function () { return (0, recoil_1.useResetRecoilState)(exports.errorStack); };
exports.useResetErrors = useResetErrors;
//# sourceMappingURL=errors.js.map