UNPKG

react-google-recaptcha-hook

Version:
2 lines (1 loc) 1.65 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("react"),h=c=>new Promise(e=>{var a;window.___grecaptcha_cfg??(window.___grecaptcha_cfg={fns:[]}),c?(a=window.grecaptcha)!=null&&a.enterprise?e(window.grecaptcha.enterprise):window.___grecaptcha_cfg.fns.push(()=>{e(window.grecaptcha.enterprise)}):window.grecaptcha?e(window.grecaptcha):window.___grecaptcha_cfg.fns.push(()=>{e(window.grecaptcha)})}),w=async(c,e,a)=>(await h(c)).execute(e,{action:a}),n=async c=>{(await h(c)).ready(()=>{const a=document.querySelector(".grecaptcha-badge");a&&(a.style.visibility="hidden")})},f=async c=>{(await h(c)).ready(()=>{const a=document.querySelector(".grecaptcha-badge");a&&(a.style.visibility="visible")})},b=(c,e)=>{const a=e!=null&&e.language?`&hl=${e.language}`:"",t=e!=null&&e.enterprise?"enterprise.js":"api.js";return`https://www.${e!=null&&e.recaptchaNet?"recaptcha.net":"google.com"}/recaptcha/${t}?render=${c}${a}`},m=(c,e)=>{const a=g.useCallback(()=>{if(document.getElementById(c))return;const r=document.createElement("script");r.async=!0,r.type="text/javascript",r.src=b(c,e),r.id=c,document.getElementsByTagName("head")[0].appendChild(r)},[e,c]),t=g.useCallback(()=>n(!!(e!=null&&e.enterprise)),[e==null?void 0:e.enterprise]),u=g.useCallback(()=>f(!!(e!=null&&e.enterprise)),[e==null?void 0:e.enterprise]),l=g.useCallback(r=>w(!!(e!=null&&e.enterprise),c,r),[e==null?void 0:e.enterprise,c]),d=g.useRef(!1);return g.useEffect(()=>{d.current||(d.current=!0,e!=null&&e.hide&&t(),a())},[a,t,e]),{executeGoogleReCaptcha:l,hideGoogleReCaptcha:t,showGoogleReCaptcha:u}};exports.useGoogleReCaptcha=m;