mirror of
https://github.com/sigmasternchen/axowall
synced 2025-03-15 08:38:55 +00:00
feat: add success callback to publically exposed handler
This commit is contained in:
parent
9349a97fbc
commit
f405e22775
1 changed files with 9 additions and 8 deletions
17
src/main.ts
17
src/main.ts
|
@ -55,15 +55,15 @@ const toggleChecked = (checkbox: Element) =>
|
||||||
const toggleLoading = (checkbox: Element) =>
|
const toggleLoading = (checkbox: Element) =>
|
||||||
checkbox[classList].toggle(CLASS_LOADING);
|
checkbox[classList].toggle(CLASS_LOADING);
|
||||||
|
|
||||||
const executeChallenge = async (challenge: Challenge, challengeCompletedCallback: (response: string) => void): Promise<void> => {
|
const executeChallenge = async (challenge: Challenge, challengeCompletedCallback: (response: string) => Promise<void>): Promise<void> => {
|
||||||
challengeCompletedCallback(await findHashWithPrefix(challenge.algo, challenge.prefixBits, challenge.input));
|
await challengeCompletedCallback(await findHashWithPrefix(challenge.algo, challenge.prefixBits, challenge.input));
|
||||||
}
|
}
|
||||||
|
|
||||||
const prepareSilentCaptcha = (_: Element, challengeCompletedCallback: (response: string) => void): (challenge: Challenge) => Promise<void> => {
|
const prepareSilentCaptcha = (_: Element, challengeCompletedCallback: (response: string) => Promise<void>): (challenge: Challenge) => Promise<void> => {
|
||||||
return async (challenge: Challenge) => await executeChallenge(challenge, challengeCompletedCallback);
|
return async (challenge: Challenge) => await executeChallenge(challenge, challengeCompletedCallback);
|
||||||
}
|
}
|
||||||
|
|
||||||
const prepareInputCaptcha = (captcha: Element, challengeCompletedCallback: (response: string) => void): (challenge: Challenge) => Promise<void> => {
|
const prepareInputCaptcha = (captcha: Element, challengeCompletedCallback: (response: string) => Promise<void>): (challenge: Challenge) => Promise<void> => {
|
||||||
const checkbox = initCaptchaContentAndGetCheckbox(captcha);
|
const checkbox = initCaptchaContentAndGetCheckbox(captcha);
|
||||||
|
|
||||||
return async (challenge: Challenge) => {
|
return async (challenge: Challenge) => {
|
||||||
|
@ -83,7 +83,7 @@ const prepareInputCaptcha = (captcha: Element, challengeCompletedCallback: (resp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const prepareCaptcha = async (captcha: Element) => {
|
const prepareCaptcha = async (captcha: Element, staticSuccessCallback?: (response: string) => Promise<void>) => {
|
||||||
const challengeUrl = captcha[getAttribute](DATA_CHALLENGE_URL);
|
const challengeUrl = captcha[getAttribute](DATA_CHALLENGE_URL);
|
||||||
const successCallback = captcha[getAttribute](DATA_SUCCESS_CALLBACK);
|
const successCallback = captcha[getAttribute](DATA_SUCCESS_CALLBACK);
|
||||||
const inputSelector = captcha[getAttribute](DATA_INPUT_SELECTOR);
|
const inputSelector = captcha[getAttribute](DATA_INPUT_SELECTOR);
|
||||||
|
@ -92,8 +92,9 @@ const prepareCaptcha = async (captcha: Element) => {
|
||||||
if (inputSelector) [..._document[querySelectorAll](inputSelector)].forEach((input: HTMLInputElement) => input.value = response)
|
if (inputSelector) [..._document[querySelectorAll](inputSelector)].forEach((input: HTMLInputElement) => input.value = response)
|
||||||
}
|
}
|
||||||
|
|
||||||
const challengeCompletesCallback = (response: string) => {
|
const challengeCompletesCallback = async (response: string) => {
|
||||||
if (successCallback) [eval][0](successCallback)(response);
|
if (staticSuccessCallback) await staticSuccessCallback(response);
|
||||||
|
else if (successCallback) [eval][0](successCallback)(response);
|
||||||
setInputValue(response);
|
setInputValue(response);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -129,4 +130,4 @@ declare global {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
window.prepareCaptcha = prepareCaptcha;
|
window.prepareCaptcha = prepareCaptcha;
|
||||||
|
|
Loading…
Reference in a new issue