release: WRNexusJS 0.5.0
This commit is contained in:
@@ -95,6 +95,7 @@
|
||||
showStatus: bool(data.captchaShowStatus, true),
|
||||
disabled: bool(data.captchaDisabled, false),
|
||||
required: bool(data.captchaRequired, true),
|
||||
resetOnError: bool(data.captchaResetOnError, true),
|
||||
compact: compact,
|
||||
requiredMessage: data.captchaRequiredMessage || "Please complete the security check.",
|
||||
incorrectMessage: data.captchaIncorrectMessage || "That answer was not correct. Try again.",
|
||||
@@ -905,6 +906,7 @@
|
||||
form: root.closest("form"),
|
||||
formSubmitListener: null,
|
||||
formSuccessListener: null,
|
||||
formErrorListener: null,
|
||||
};
|
||||
states.set(root, state);
|
||||
root.dataset.captchaSize = state.config.size;
|
||||
@@ -967,8 +969,25 @@
|
||||
state.formSuccessListener = function () {
|
||||
createChallenge(state, state.config.presentation);
|
||||
};
|
||||
state.formErrorListener = function (event) {
|
||||
// Verified response tokens are single-use. The receiving API may
|
||||
// consume one before another form field fails, so retry with a fresh
|
||||
// challenge instead of reusing an already-consumed token.
|
||||
var detail = event && event.detail ? event.detail : {};
|
||||
var captchaFailed =
|
||||
detail.code === "missing-input" ||
|
||||
detail.code === "invalid-input" ||
|
||||
detail.code === "expired" ||
|
||||
detail.code === "already-used" ||
|
||||
detail.code === "action-mismatch" ||
|
||||
detail.code === "hostname-mismatch" ||
|
||||
detail.code === "session-mismatch";
|
||||
if (state.config.resetOnError || captchaFailed)
|
||||
createChallenge(state, state.config.presentation);
|
||||
};
|
||||
state.form.addEventListener("submit", state.formSubmitListener, true);
|
||||
state.form.addEventListener("wire:success", state.formSuccessListener);
|
||||
state.form.addEventListener("wire:error", state.formErrorListener);
|
||||
}
|
||||
|
||||
updateNotRobotState(state);
|
||||
@@ -1002,6 +1021,9 @@
|
||||
if (state.form && state.formSuccessListener) {
|
||||
state.form.removeEventListener("wire:success", state.formSuccessListener);
|
||||
}
|
||||
if (state.form && state.formErrorListener) {
|
||||
state.form.removeEventListener("wire:error", state.formErrorListener);
|
||||
}
|
||||
try {
|
||||
if (state.externalApi && state.externalWidgetId != null) {
|
||||
if (typeof state.externalApi.remove === "function")
|
||||
|
||||
Reference in New Issue
Block a user