mirror of
https://github.com/sigmasternchen/axowall
synced 2025-03-15 08:38:55 +00:00
add API for (re)initializing captchas
This commit is contained in:
parent
8c10b8f7bc
commit
a68c75a00c
1 changed files with 17 additions and 1 deletions
18
src/main.ts
18
src/main.ts
|
@ -25,6 +25,7 @@ const findHashWithPrefix = async (algo: string, hashPrefixBits: number, inputPre
|
||||||
}
|
}
|
||||||
|
|
||||||
function initCaptchaContentAndGetCheckbox(captcha: Element): Element {
|
function initCaptchaContentAndGetCheckbox(captcha: Element): Element {
|
||||||
|
captcha.textContent = ""; // clear node
|
||||||
const checkbox = document.createElement("div");
|
const checkbox = document.createElement("div");
|
||||||
checkbox.classList.add(CLASS_CHECKBOX, CLASS_LOADING);
|
checkbox.classList.add(CLASS_CHECKBOX, CLASS_LOADING);
|
||||||
|
|
||||||
|
@ -77,9 +78,16 @@ const prepareCaptcha = async (captcha: Element) => {
|
||||||
throw "No challenge URL found.";
|
throw "No challenge URL found.";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const setInputValue = (response: string) => {
|
||||||
|
if (inputSelector) [...document.querySelectorAll(inputSelector)].forEach((input: HTMLInputElement) => input.value = response)
|
||||||
|
}
|
||||||
|
|
||||||
|
// reset form input value
|
||||||
|
setInputValue("");
|
||||||
|
|
||||||
const challengeCompletesCallback = (response: string) => {
|
const challengeCompletesCallback = (response: string) => {
|
||||||
if (successCallback) [eval][0](successCallback)(response);
|
if (successCallback) [eval][0](successCallback)(response);
|
||||||
if (inputSelector) [...document.querySelectorAll(inputSelector)].forEach((input: HTMLInputElement) => input.value = response)
|
setInputValue(response);
|
||||||
};
|
};
|
||||||
|
|
||||||
const initDoneCallback = (captcha.classList.contains(CLASS_SILENT)
|
const initDoneCallback = (captcha.classList.contains(CLASS_SILENT)
|
||||||
|
@ -100,3 +108,11 @@ const prepareCaptcha = async (captcha: Element) => {
|
||||||
window.addEventListener("load", () =>
|
window.addEventListener("load", () =>
|
||||||
[...document.getElementsByClassName("captcha")].forEach(prepareCaptcha)
|
[...document.getElementsByClassName("captcha")].forEach(prepareCaptcha)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
declare global {
|
||||||
|
interface Window {
|
||||||
|
prepareCaptcha: (captcha: Element) => Promise<void>;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
window.prepareCaptcha = prepareCaptcha;
|
Loading…
Reference in a new issue