thunk-request-status
Version:
Utility library for handle thunk request statuses
30 lines (29 loc) • 1.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useIsFulfilled = exports.useIsRejected = exports.useIsLoading = exports.useIsIdle = void 0;
const react_redux_1 = require("react-redux");
const selectors_1 = require("./selectors");
const request_statuses_utils_1 = require("./request-statuses.utils");
const request_statuses_contstants_1 = require("./request-statuses.contstants");
const useRootStatusSelector = (thunk) => {
return (0, react_redux_1.useSelector)((0, selectors_1.getThunkRequestStatus)((0, request_statuses_utils_1.getThunkPrefix)(thunk)));
};
const checkIsSomeThunkEqualOfStatus = (thunk, status) => {
return useRootStatusSelector(thunk) === status;
};
const useIsIdle = (thunk) => {
return checkIsSomeThunkEqualOfStatus(thunk, request_statuses_contstants_1.IDLE_STATUS);
};
exports.useIsIdle = useIsIdle;
const useIsLoading = (thunk) => {
return checkIsSomeThunkEqualOfStatus(thunk, request_statuses_contstants_1.PENDING_STATUS);
};
exports.useIsLoading = useIsLoading;
const useIsRejected = (thunk) => {
return checkIsSomeThunkEqualOfStatus(thunk, request_statuses_contstants_1.REJECTED_STATUS);
};
exports.useIsRejected = useIsRejected;
const useIsFulfilled = (thunk) => {
return checkIsSomeThunkEqualOfStatus(thunk, request_statuses_contstants_1.FULFILLED_STATUS);
};
exports.useIsFulfilled = useIsFulfilled;