react-grecaptcha-v3
Version:
Google Recaptcha V3 for React.js based application. Keep website performance high while prioritizing security.
52 lines • 2.01 kB
JavaScript
function _instanceof(left, right) {
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
return !!right[Symbol.hasInstance](left);
} else {
return left instanceof right;
}
}
import { useCallback } from "react";
import subscribeEvent from "./subscribeEvent";
var unknownToError = function(err) {
var fallbackMsg = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "Unexpected error";
var msg = _instanceof(err, Error) ? err.message : typeof err === "string" ? err : fallbackMsg;
return new Error(msg);
};
var useHandleNextInQueue = function(siteKey, queueRef) {
return useCallback(function() {
var _loop = function() {
var item = queueRef.current.shift();
if (item === void 0) {
return "break";
}
var action = item.action, onComplete = item.onComplete, onError = item.onError;
subscribeEvent(function() {
var _window_grecaptcha;
var _ref;
var execute = (_ref = (_window_grecaptcha = window.grecaptcha) === null || _window_grecaptcha === void 0 ? void 0 : _window_grecaptcha.execute) !== null && _ref !== void 0 ? _ref : null;
if (execute !== null) {
execute(siteKey, {
action: action
}).then(onComplete).catch(function(err) {
onError(unknownToError(err));
});
return;
}
onError(new Error("Bad execute()."));
});
};
if (siteKey === null) {
return;
}
do {
var _ret = _loop();
if (_ret === "break") break;
}while (true);
}, [
queueRef,
siteKey
]);
};
var useHandleNextInQueue_default = useHandleNextInQueue;
export { useHandleNextInQueue_default as default };
//# sourceMappingURL=useHandleNextInQueue.js.map