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 {
|
||||
captcha.textContent = ""; // clear node
|
||||
const checkbox = document.createElement("div");
|
||||
checkbox.classList.add(CLASS_CHECKBOX, CLASS_LOADING);
|
||||
|
||||
|
@ -77,9 +78,16 @@ const prepareCaptcha = async (captcha: Element) => {
|
|||
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) => {
|
||||
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)
|
||||
|
@ -100,3 +108,11 @@ const prepareCaptcha = async (captcha: Element) => {
|
|||
window.addEventListener("load", () =>
|
||||
[...document.getElementsByClassName("captcha")].forEach(prepareCaptcha)
|
||||
);
|
||||
|
||||
declare global {
|
||||
interface Window {
|
||||
prepareCaptcha: (captcha: Element) => Promise<void>;
|
||||
}
|
||||
}
|
||||
|
||||
window.prepareCaptcha = prepareCaptcha;
|
Loading…
Reference in a new issue