mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-30 11:44:21 -05:00
8f5270899f
Transform frontend module format from AMD to ESM GitOrigin-RevId: 9adbcdc95e819a54114010c6fd3521d8f58ef2fe
46 lines
1.1 KiB
JavaScript
46 lines
1.1 KiB
JavaScript
/* global grecaptcha */
|
|
|
|
/* eslint-disable
|
|
no-return-assign,
|
|
*/
|
|
// TODO: This file was created by bulk-decaffeinate.
|
|
// Fix any style issues and re-enable lint.
|
|
/*
|
|
* decaffeinate suggestions:
|
|
* DS102: Remove unnecessary code created because of implicit returns
|
|
*/
|
|
import App from '../base'
|
|
|
|
export default App.factory('validateCaptcha', function() {
|
|
let _recaptchaCallbacks = []
|
|
const onRecaptchaSubmit = function(token) {
|
|
for (let cb of _recaptchaCallbacks) {
|
|
cb(token)
|
|
}
|
|
_recaptchaCallbacks = []
|
|
}
|
|
|
|
let recaptchaId = null
|
|
const validateCaptcha = (callback, captchaDisabled) => {
|
|
if (callback == null) {
|
|
callback = function(response) {}
|
|
}
|
|
if (
|
|
typeof grecaptcha === 'undefined' ||
|
|
grecaptcha === null ||
|
|
captchaDisabled
|
|
) {
|
|
return callback()
|
|
}
|
|
const reset = () => grecaptcha.reset()
|
|
_recaptchaCallbacks.push(callback)
|
|
_recaptchaCallbacks.push(reset)
|
|
if (recaptchaId == null) {
|
|
const el = $('#recaptcha')[0]
|
|
recaptchaId = grecaptcha.render(el, { callback: onRecaptchaSubmit })
|
|
}
|
|
return grecaptcha.execute(recaptchaId)
|
|
}
|
|
|
|
return validateCaptcha
|
|
})
|