UNPKG

@privy-io/react-auth

Version:

React client for the Privy Auth API

2 lines (1 loc) 4.39 kB
"use strict";var e=require("react/jsx-runtime"),r=require("react"),i=require("./context-D-ZJYjUg.js"),t=require("./get-is-unified-wallet-UpdjHxOV.js"),o=require("./to-ui-error-BJRhg6yc.js");require("@privy-io/js-sdk-core"),require("tinycolor2"),require("@privy-io/are-addresses-equal"),require("./internal-context-BJv4f_bO.js"),require("ofetch"),require("@heroicons/react/24/outline/DevicePhoneMobileIcon"),require("@heroicons/react/24/outline/FingerPrintIcon"),require("@heroicons/react/24/outline/PhoneIcon"),require("@heroicons/react/24/outline/ShieldCheckIcon"),require("./ModalHeader-BCPQgekO.js"),require("styled-components"),require("./useActiveWallet-Cn6zOXx5.js"),require("zustand"),require("react-device-detect"),require("./use-export-wallet-B5ujV5Nk.js"),require("eventemitter3"),require("viem/utils"),require("./useWallets-CKAypPZB.js"),require("./events-context-Di6--rDg.js"),require("viem"),require("./getPublicClient-BsmZyCGX.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("./ScreenLayout-CMb-Fua0.js"),require("./Screen-BfKedqka.js"),require("./index-ByFhjjzH.js"),require("./PinInput-B12fA7pp.js"),require("@heroicons/react/24/outline/CalendarIcon"),require("@heroicons/react/24/outline/ExclamationTriangleIcon"),require("./StackedContainer-CM36po_U.js"),require("./useGetTokenPrice-761HAiva.js"),require("./useGetSolPrice-Ca32VAbF.js"),require("./index-C8lpxYDX.js"),require("uuid"),require("jose"),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("viem/accounts"),require("./use-sign-with-user-signer-Cu_6Bx7m.js"),require("./TransactionDetails-BY2Ynu2J.js"),require("./WalletLink-Bs_1C81F.js"),require("./ethers-SCb3aakT.js"),require("./getFormattedUsdFromLamports-Mu2fqwL2.js"),require("./transaction-DjF5X-by.js"),require("./Layouts-D3TOcPhm.js"),require("@heroicons/react/24/outline/ChevronDownIcon");const s={component:()=>{let{user:s}=t.usePrivyContext(),u=i.useAppConfig(),n=r.useMemo((()=>s?.mfaMethods.filter((e=>"passkey"!==e||!u.globalDisablePasskeys))??[]),[s?.mfaMethods,u.globalDisablePasskeys]),{data:a}=t.usePrivyModal(),[c,l]=r.useState(n[0]),[q,d]=r.useState(!1),[h,f]=r.useState(),[y,j]=r.useState();if(r.useEffect((()=>{l(n[0])}),[n]),!a?.mfaVerify)throw Error("Missing modal data for MFA verification screen.");let{onFailure:p,onSuccess:v,generateOptions:m,verifyTotpCode:k,verifyPasskey:g,verifySmsCode:S,sendSmsCode:w}=a.mfaVerify,C=async e=>{if("passkey"!==e)try{l(e),"sms"===e&&(l(e),await w()),"totp"===e&&l(e)}catch(e){console.error(e)}else try{l(e);let r=await m();if(!r)throw Error("something went wrong");f(r),await g(r),d(!0),j(void 0),v()}catch(e){j(o.toUIError(e))}},M=async e=>{j(void 0);try{if(!e||!c)return;if("passkey"===c){if(!h)throw Error("Missing passkey challenge");await g(h)}else"sms"===c?await S(e):"totp"===c&&await k(e);j(void 0),d(!0),v()}catch(e){throw o.toUIError(e).error}},P=()=>{y||!q?p(y?.error??Error("Canceled MFA verification.")):v()},x=r.useRef(!1);return r.useEffect((()=>{!x.current&&c&&(x.current=!0,C(c).finally((()=>{x.current=!1})))}),[open]),s?"passkey"===c?/*#__PURE__*/e.jsx(o.VerifyWithPasskey,{account:s.linkedAccounts.filter((e=>"passkey"===e.type&&e.enrolledInMfa)).sort(((e,r)=>r.firstVerifiedAt.valueOf()-e.firstVerifiedAt.valueOf()))[0],submitSuccess:q,hasBlockingError:y?.isBlocking??!1,error:y?.error,onClose:P,onBack:()=>{l(void 0),j(void 0)},handleSubmit:()=>M(h).catch(j)}):"sms"===c||"totp"===c?/*#__PURE__*/e.jsx(o.VerifyWithSmsOrTotpCode,{selectedMethod:c,submitSuccess:q,hasBlockingError:y?.isBlocking??!1,handleSubmitCode:M,onClose:P,onBack:n.length>1?()=>l(void 0):void 0}):/*#__PURE__*/e.jsx(o.VerifyMethodSelectionScreen,{mfaMethods:n,onSelect:C,handleClose:P}):null}};exports.MfaAuthVerifyFlowScreen=s,exports.default=s;