UNPKG

@privy-io/react-auth

Version:

React client for the Privy Auth API

2 lines (1 loc) 3.98 kB
"use strict";var e=require("react/jsx-runtime"),r=require("lucide-react"),t=require("react"),i=require("./index-C8lpxYDX.js"),s=require("./get-is-unified-wallet-UpdjHxOV.js"),u=require("./ScreenLayout-CMb-Fua0.js");require("@privy-io/js-sdk-core"),require("uuid"),require("jose"),require("eventemitter3"),require("./useActiveWallet-Cn6zOXx5.js"),require("zustand"),require("./context-D-ZJYjUg.js"),require("tinycolor2"),require("styled-components"),require("react-device-detect"),require("./use-export-wallet-B5ujV5Nk.js"),require("./internal-context-BJv4f_bO.js"),require("ofetch"),require("viem/utils"),require("./useWallets-CKAypPZB.js"),require("./events-context-Di6--rDg.js"),require("viem"),require("./getPublicClient-BsmZyCGX.js"),require("@coinbase/wallet-sdk"),require("@privy-io/ethereum"),require("mipd"),require("@privy-io/popup"),require("./paths-DizMb-lU.js"),require("./usePrivy-cfS6o4tX.js"),require("@scure/base"),require("@headlessui/react"),require("@walletconnect/ethereum-provider"),require("@privy-io/urls"),require("./PrivyPluginContext-DsgaS6n9.js"),require("./getEmbeddedConnectedWallet-pJd-l936.js"),require("js-cookie"),require("./frame-Oz7volks.js"),require("@privy-io/routes"),require("x402/client"),require("@privy-io/api-base"),require("@privy-io/are-addresses-equal"),require("viem/accounts"),require("./use-sign-with-user-signer-Cu_6Bx7m.js"),require("./ModalHeader-BCPQgekO.js"),require("@heroicons/react/24/outline/ArrowLeftIcon"),require("@heroicons/react/24/outline/ArrowRightIcon"),require("@heroicons/react/24/outline/QuestionMarkCircleIcon"),require("@heroicons/react/24/outline/XMarkIcon"),require("./Screen-BfKedqka.js"),require("./index-ByFhjjzH.js");const a=({status:i,title:s,description:a,userIntentRequired:n,retriesRemaining:o,hasSelectedCta:c,onContinue:l,onRetry:d})=>{let q=t.useMemo((()=>{switch(i){case"loading":default:return;case"success":return n?{label:c?"Continuing...":"Continue",onClick:l,disabled:c,loading:c}:void 0;case"error":return o>0?{label:"Retry",onClick:d}:void 0}}),[i,c,l,d]),p=t.useMemo((()=>({loading:"loading",ready:"subtle",disabled:"subtle",success:"success",error:"error"}[i]||"loading")),[i]);/*#__PURE__*/return e.jsx(u.ScreenLayout,{icon:"loading"===i||"ready"===i?void 0:"success"===i?r.CheckCircle:r.XCircle,iconVariant:p,title:s,subtitle:a,primaryCta:q,watermark:!0})},n={component:()=>{let{lastScreen:r,data:u,navigate:n,setModalData:o}=s.usePrivyModal(),{status:c,token:l,waitForResult:d,reset:q,execute:p}=i.useCaptcha(),y=t.useRef([]),h=e=>{y.current=[e,...y.current]},[g,m]=t.useState(!0);t.useEffect((()=>(h(setTimeout(m,1e3,!1)),()=>{y.current.forEach((e=>clearTimeout(e))),y.current=[]})),[]);let[v,j]=t.useState(""),[C,f]=t.useState("Checking that you are a human..."),[S,b]=t.useState(!1),[w,k]=t.useState(3),x=u?.captchaModalData,R=async e=>{try{await(x?.callback(e)),x?.onSuccessNavigateTo&&n(x?.onSuccessNavigateTo,!1)}catch(e){if(e instanceof i.CaptchaError)return;o({errorModalData:{error:e,previousScreen:r||"LandingScreen"}}),n(x?.onErrorNavigateTo||"ErrorScreen",!1)}};t.useEffect((()=>{"success"===c?h(setTimeout((async()=>{let e=await d();!e||x?.userIntentRequired||R(e)}),1e3)):"ready"===c&&h(setTimeout((()=>{"ready"===c&&p()}),500))}),[c]),t.useEffect((()=>{if(!g)switch(c){case"success":j("Success!"),f("CAPTCHA passed successfully."),x?.userIntentRequired||setTimeout((()=>{b(!0),R(l)}),2e3);break;case"loading":j(""),f("Checking that you are a human...");break;case"error":j("Something went wrong"),f(w<=0?"If you use an adblocker or VPN, try disabling and re-attempting.":"You did not pass CAPTCHA. Please try again.")}}),[c,g,S]);/*#__PURE__*/return e.jsx(a,{status:c,title:v,description:C,userIntentRequired:x?.userIntentRequired,retriesRemaining:w,hasSelectedCta:S,onContinue:()=>{b(!0),R(l)},onRetry:async()=>{if(w<=0)return;k((e=>e-1)),q(),p();let e=await d();!e||x?.userIntentRequired||R(e)}})}};exports.CaptchaScreen=n,exports.CaptchaScreenView=a,exports.default=n;