Files
overleaf-cep/services/web/frontend/js/features/share-project-modal/utils/captcha.ts
roo hutton 4ec437db9e Merge pull request #28003 from overleaf/rh-b2c-js-ts
Migrate B2C js to typescript: contact form, form helpers, and algolia

GitOrigin-RevId: b9ec423cdc551123a5b471e4a4c1a482b6a02e16
2025-08-29 08:06:21 +00:00

30 lines
800 B
TypeScript

let _recaptchaId: string
let _recaptchaResolve: ((token: string) => void) | undefined
export function executeV2Captcha(disabled: boolean = false) {
return new Promise<void | string>((resolve, reject) => {
if (disabled || !window.grecaptcha) {
return resolve()
}
try {
if (!_recaptchaId && window.grecaptcha) {
_recaptchaId = window.grecaptcha.render('recaptcha', {
callback: (token: string) => {
if (_recaptchaResolve) {
_recaptchaResolve(token)
_recaptchaResolve = undefined
}
if (window.grecaptcha) {
window.grecaptcha.reset(_recaptchaId)
}
},
})
}
_recaptchaResolve = resolve
} catch (error) {
reject(error)
}
})
}