react-native-turnstile-widget
Version:
A wrapper for CloudFlare Turnstile for use in React Native apps.
3 lines • 3.03 kB
JavaScript
// react-native-turnstile-widget by Matthew Meszaros
;var G=Object.create;var d=Object.defineProperty;var H=Object.getOwnPropertyDescriptor;var K=Object.getOwnPropertyNames;var Q=Object.getPrototypeOf,X=Object.prototype.hasOwnProperty;var f=(e,r)=>d(e,"name",{value:r,configurable:!0});var Y=(e,r)=>{for(var n in r)d(e,n,{get:r[n],enumerable:!0})},W=(e,r,n,p)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of K(r))!X.call(e,a)&&a!==n&&d(e,a,{get:()=>r[a],enumerable:!(p=H(r,a))||p.enumerable});return e};var Z=(e,r,n)=>(n=e!=null?G(Q(e)):{},W(r||!e||!e.__esModule?d(n,"default",{value:e,enumerable:!0}):n,e)),_=e=>W(d({},"__esModule",{value:!0}),e);var ne={};Y(ne,{default:()=>re,resetTurnstile:()=>B});module.exports=_(ne);var o=Z(require("react")),A=require("react-native-webview"),s=require("react-native"),j=require("react");var ee={normal:{width:300,height:65},compact:{width:130,height:120}};function v(e){let{uri:r,sitekey:n,onVerify:p,onLoad:a,onError:m,onExpire:y,onTimeout:g,onAfterInteractive:b,onBeforeInteractive:w,onUnsupported:x,action:S,cData:h,theme:T,language:E,tabIndex:k,responseField:I,responseFieldName:R,size:l,fixedSize:V,retry:D,retryInterval:N,refreshExpired:P,appearance:z,execution:F,id:L,resetRef:c,style:C,webviewStyle:M}=e,u=(0,j.useRef)(null);(0,o.useEffect)(()=>{c&&(c.current=()=>{u.current&&u.current.reload()})},[c]);let t=new URLSearchParams;n&&t.append("sitekey",n),S&&t.append("action",S),h&&t.append("cData",h),T&&t.append("theme",T),E&&t.append("language",E),k&&t.append("tabIndex",k.toString()),I&&t.append("responseField",I.toString()),R&&t.append("responseFieldName",R),l&&t.append("size",l),V&&t.append("fixedSize",V.toString()),D&&t.append("retry",D),N&&t.append("retryInterval",N.toString()),P&&t.append("refreshExpired",P),z&&t.append("appearance",z),F&&t.append("execution",F),L&&t.append("id",L);let O=`${r}?${t.toString()}`,U=ee[l||"normal"],$=s.StyleSheet.flatten([{height:U.height,width:U.width},C]),J=s.StyleSheet.flatten([te.webview,M]);return o.default.createElement(o.default.Fragment,null,o.default.createElement(s.View,{style:$},o.default.createElement(A.WebView,{ref:u,source:{uri:O},onMessage:q=>{try{let i=JSON.parse(q.nativeEvent.data);if(!i.event)throw new Error("Invalid event received from Turnstile endpoint");switch(i.event){case"verify":p&&i.data&&p(i.data);break;case"load":a&&i.data&&a(i.data);break;case"error":m&&m(new Error(i.data||"An error occurred"));break;case"expire":y&&i.data&&y(i.data);break;case"timeout":g&&g();break;case"afterInteractive":b&&b();break;case"beforeInteractive":w&&w();break;case"unsupported":x&&x();break;default:console.error("Unsupported event received from Turnstile endpoint")}}catch(i){console.error(i)}},javaScriptEnabled:!0,style:J,originWhitelist:["*"]})))}f(v,"ReactNativeTurnstile");var te=s.StyleSheet.create({webview:{flex:1}});function B(e){e.current&&typeof e.current=="function"&&e.current()}f(B,"resetTurnstile");var re=v;0&&(module.exports={resetTurnstile});
//# sourceMappingURL=index.js.map