primereact
Version:
PrimeReact is an open source UI library for React featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with Prime
2 lines (1 loc) • 2.21 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("primereact/hooks"),n=require("primereact/utils");function r(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var c=r(e);function a(){return a=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a.apply(this,arguments)}var u=c.memo(c.forwardRef((function(e,r){var o=c.useRef(null),i=c.useRef(null),s=c.useRef(null),l=c.useRef(!1),p=function(){i.current=window.grecaptcha.render(o.current,{sitekey:e.siteKey,theme:e.theme,type:e.type,size:e.size,tabindex:e.tabIndex,hl:e.language,callback:h,"expired-callback":g})},f=function(){i.current&&window.grecaptcha.reset(i.current)},d=function(){return i.current?window.grecaptcha.getResponse(i.current):null},h=function(t){e.onResponse&&e.onResponse({response:t})},g=function(){e.onExpire&&e.onExpire()},m=function(){if(s.current=null,!window.grecaptcha){var e=document.head||document.getElementsByTagName("head")[0],t=document.createElement("script");t.src="https://www.google.com/recaptcha/api.js?render=explicit",t.async=!0,t.defer=!0,t.onload=function(){window.grecaptcha?window.grecaptcha.ready((function(){p()})):console.warn("Recaptcha is not loaded")},s.current=t,e.appendChild(s.current)}};t.useMountEffect((function(){l.current||(m(),window.grecaptcha&&p(),l.current=!0)})),t.useUnmountEffect((function(){s.current&&s.current.parentNode&&s.current.parentNode.removeChild(s.current)})),c.useImperativeHandle(r,(function(){return{props:e,reset:f,getResponse:d,getElement:function(){return o.current}}}));var w=n.ObjectUtils.findDiffKeys(e,u.defaultProps);return c.createElement("div",a({ref:o,id:e.id},w))})));u.displayName="Captcha",u.defaultProps={__TYPE:"Captcha",id:null,siteKey:null,theme:"light",type:"image",size:"normal",tabIndex:0,language:"en",onResponse:null,onExpire:null},exports.Captcha=u;