vue-recaptcha
Version:
ReCAPTCHA vue component
63 lines (62 loc) • 1.53 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useComponentV2 = useComponentV2;
var _shared = require("@vueuse/shared");
var _vueDemi = require("vue-demi");
var _challengeV = require("./challenge-v2.cjs");
function useComponentV2(options, modelValue, emit) {
const {
root,
state,
widgetID,
onError,
onExpired,
onVerify,
reset,
execute
} = (0, _challengeV.useChallengeV2)({
options: options || {}
});
const isExpired = (0, _vueDemi.computed)(() => state.value === _challengeV.RecaptchaV2State.Expired);
const isError = (0, _vueDemi.computed)(() => state.value === _challengeV.RecaptchaV2State.Error);
const isVerified = (0, _vueDemi.computed)(() => state.value === _challengeV.RecaptchaV2State.Verified);
(0, _shared.whenever)(widgetID, id => {
emit("load", id);
emit("update:widgetId", id);
});
(0, _vueDemi.watch)(modelValue, (res, old) => {
if (!res && old && !isExpired.value) {
callReset();
}
});
onExpired(() => {
emit("update:modelValue", null);
emit("expired", widgetID.value);
});
onError(err => {
emit("error", err);
});
onVerify(response => {
emit("success", response);
emit("update:modelValue", response);
});
return {
root,
widgetID,
state,
isError,
isExpired,
isVerified,
reset: callReset,
execute
};
function callReset() {
reset();
resetState();
}
function resetState() {
emit("update:modelValue", null);
}
}
;