@modern-kit/react
Version:
39 lines (35 loc) • 885 B
JavaScript
;
var React = require('react');
function useBlockMultipleAsyncCalls() {
const [isLoading, setIsLoading] = React.useState(false);
const [isError, setIsError] = React.useState(false);
const isCalled = React.useRef(false);
const blockMultipleAsyncCalls = React.useCallback(
async (callback) => {
if (isCalled.current) {
return;
}
isCalled.current = true;
setIsLoading(true);
setIsError(false);
try {
const result = await callback();
return result;
} catch (error) {
setIsError(true);
throw error;
} finally {
isCalled.current = false;
setIsLoading(false);
}
},
[]
);
return {
isError,
isLoading,
blockMultipleAsyncCalls
};
}
exports.useBlockMultipleAsyncCalls = useBlockMultipleAsyncCalls;
//# sourceMappingURL=index.cjs.map