Files
Desktop/ts/services/challengeHandler.preload.ts
Fedor Indutny 44076ece79 Rename files
2025-10-16 23:45:44 -07:00

47 lines
1.3 KiB
TypeScript

// Copyright 2025 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { ChallengeHandler } from '../challenge.dom.js';
import { itemStorage } from '../textsecure/Storage.preload.js';
import { sendChallengeResponse as doSendChallengeResponse } from '../textsecure/WebAPI.preload.js';
import { conversationJobQueue } from '../jobs/conversationJobQueue.preload.js';
import { ToastType } from '../types/Toast.dom.js';
export const challengeHandler = new ChallengeHandler({
storage: itemStorage,
startQueue(conversationId: string) {
conversationJobQueue.resolveVerificationWaiter(conversationId);
},
requestChallenge(request) {
if (window.SignalCI) {
window.SignalCI.handleEvent('challenge', request);
return;
}
window.sendChallengeRequest(request);
},
async sendChallengeResponse(data) {
await doSendChallengeResponse(data);
},
onChallengeFailed() {
// TODO: DESKTOP-1530
// Display humanized `retryAfter`
window.reduxActions.toast.showToast({
toastType: ToastType.CaptchaFailed,
});
},
onChallengeSolved() {
window.reduxActions.toast.showToast({
toastType: ToastType.CaptchaSolved,
});
},
setChallengeStatus(challengeStatus) {
window.reduxActions.network.setChallengeStatus(challengeStatus);
},
});