UNPKG

@privy-io/react-auth

Version:

React client for the Privy Auth API

2 lines (1 loc) 3.94 kB
"use strict";var e=require("react/jsx-runtime"),r=require("lucide-react"),t=require("react"),i=require("./index-NJrQkxJ7.js"),u=require("./get-is-unified-wallet-D4ouXJpi.js"),s=require("./ScreenLayout-BeH-Q6N2.js");require("@privy-io/js-sdk-core"),require("uuid"),require("jose"),require("eventemitter3"),require("./useActiveWallet-BOX8xCn9.js"),require("zustand"),require("./context-DFq1obBO.js"),require("tinycolor2"),require("styled-components"),require("react-device-detect"),require("./prepareFundingModalData-Cnd6rhhJ.js"),require("./internal-context-NWsAL807.js"),require("ofetch"),require("./events-context-Di6--rDg.js"),require("viem"),require("viem/utils"),require("./getPublicClient-CGlodIp_.js"),require("./useWallets-BLFNjTwC.js"),require("@coinbase/wallet-sdk"),require("@privy-io/ethereum"),require("mipd"),require("@privy-io/popup"),require("./paths-DizMb-lU.js"),require("./usePrivy-CcfSRv1R.js"),require("@scure/base"),require("@headlessui/react"),require("@walletconnect/ethereum-provider"),require("@privy-io/urls"),require("js-cookie"),require("./frame-B14fp9oC.js"),require("@privy-io/routes"),require("x402/client"),require("@privy-io/api-base"),require("viem/accounts"),require("./use-sign-with-user-signer-BcAsQTGF.js"),require("./getEmbeddedConnectedWallet-6TsVZJkD.js"),require("./Button-Bm_Ft0Dw.js"),require("./Screen-D9Tvi297.js"),require("./ModalHeader-DB7Tbjwz.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("./index-CRFXS9pP.js");const a=({status:i,title:u,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(s.ScreenLayout,{icon:"loading"===i||"ready"===i?void 0:"success"===i?r.CheckCircle:r.XCircle,iconVariant:p,title:u,subtitle:a,primaryCta:q,watermark:!0})},n={component:()=>{let{lastScreen:r,data:s,navigate:n,setModalData:o}=u.usePrivyModal(),{status:c,token:l,waitForResult:d,reset:q,execute:p}=i.useCaptcha(),h=t.useRef([]),y=e=>{h.current=[e,...h.current]},[g,m]=t.useState(!0);t.useEffect((()=>(y(setTimeout(m,1e3,!1)),()=>{h.current.forEach((e=>clearTimeout(e))),h.current=[]})),[]);let[v,C]=t.useState(""),[j,f]=t.useState("Checking that you are a human..."),[S,b]=t.useState(!1),[k,w]=t.useState(3),R=s?.captchaModalData,x=async e=>{try{await(R?.callback(e)),R?.onSuccessNavigateTo&&n(R?.onSuccessNavigateTo,!1)}catch(e){if(e instanceof i.CaptchaError)return;o({errorModalData:{error:e,previousScreen:r||"LandingScreen"}}),n(R?.onErrorNavigateTo||"ErrorScreen",!1)}};t.useEffect((()=>{"success"===c?y(setTimeout((async()=>{let e=await d();!e||R?.userIntentRequired||x(e)}),1e3)):"ready"===c&&y(setTimeout((()=>{"ready"===c&&p()}),500))}),[c]),t.useEffect((()=>{if(!g)switch(c){case"success":C("Success!"),f("CAPTCHA passed successfully."),R?.userIntentRequired||setTimeout((()=>{b(!0),x(l)}),2e3);break;case"loading":C(""),f("Checking that you are a human...");break;case"error":C("Something went wrong"),f(k<=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:j,userIntentRequired:R?.userIntentRequired,retriesRemaining:k,hasSelectedCta:S,onContinue:()=>{b(!0),x(l)},onRetry:async()=>{if(k<=0)return;w((e=>e-1)),q(),p();let e=await d();!e||R?.userIntentRequired||x(e)}})}};exports.CaptchaScreen=n,exports.CaptchaScreenView=a,exports.default=n;