recoil-toolkit
Version:
22 lines • 813 B
JavaScript
import { atom, selector, selectorFamily, useRecoilValue, useResetRecoilState } from 'recoil';
export const ERRORS_STACK_SIZE = 100;
export const errorStack = atom({
key: '@recoil-toolkit.errorStack',
default: [],
});
export const lastError = selector({
key: '@recoil-toolkit.lastError',
get: ({ get }) => {
const e = get(errorStack);
return e.length > 0 ? e[e.length - 1] : undefined;
},
});
export const lastErrorType = selectorFamily({
key: '@recoil-toolkit.lastErrorType',
get: (key) => ({ get }) => get(errorStack)
.filter(e => e.key === key)
.pop(),
});
export const useLastError = (key) => useRecoilValue(key ? lastErrorType(key) : lastError);
export const useResetErrors = () => useResetRecoilState(errorStack);
//# sourceMappingURL=errors.js.map