@privy-io/react-auth
Version:
React client for the Privy Auth API
2 lines (1 loc) • 4.03 kB
JavaScript
;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("./index-C8lpxYDX.js"),s=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("uuid"),require("jose"),require("eventemitter3"),require("./useActiveWallet-Cn6zOXx5.js"),require("zustand"),require("styled-components"),require("react-device-detect"),require("./use-export-wallet-B5ujV5Nk.js"),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("viem/accounts"),require("./use-sign-with-user-signer-Cu_6Bx7m.js"),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("@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("./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 u=({onClose:u})=>{let{user:n}=t.usePrivyContext(),c=i.useAppConfig(),a=r.useMemo((()=>n?.mfaMethods.filter((e=>"passkey"!==e||!c.globalDisablePasskeys))??[]),[n?.mfaMethods,c.globalDisablePasskeys]),[l,q]=r.useState(a[0]??null),{init:d,cancel:h,submit:j}=o.useMfa(),[f,y]=r.useState(!1),[v,p]=r.useState(null),[m,k]=r.useState();r.useEffect((()=>{q(a[0]??null)}),[a]);let g=r.useRef(!1);async function S(e){k(void 0);try{if(!e||!l)return;await j(l,e),y(!0),k(void 0),u()}catch(e){throw s.toUIError(e).error}}async function w(e){if("passkey"!==e)try{q(e),await d(e)}catch(e){console.error(e)}else try{q(e);let r=await d(e);if(!r)throw Error("something went wrong");p(r),await j(e,r),y(!0),k(void 0),u()}catch(e){k(s.toUIError(e))}}r.useEffect((()=>{!g.current&&l&&(g.current=!0,w(l).finally((()=>{g.current=!1})))}),[]);let b=()=>{q(null),k(void 0),h(),u()};return n?"passkey"===l?/*#__PURE__*/e.jsx(s.VerifyWithPasskey,{account:n.linkedAccounts.filter((e=>"passkey"===e.type&&e.enrolledInMfa)).sort(((e,r)=>r.firstVerifiedAt.valueOf()-e.firstVerifiedAt.valueOf()))[0],submitSuccess:f,hasBlockingError:m?.isBlocking??!1,error:m?.error,onClose:b,onBack:()=>{q(null),k(void 0)},handleSubmit:()=>S(v).catch(k)}):l?/*#__PURE__*/e.jsx(s.VerifyWithSmsOrTotpCode,{submitSuccess:f,hasBlockingError:m?.isBlocking??!1,handleSubmitCode:S,selectedMethod:l,onClose:b,onBack:a.length>1?()=>q(null):void 0}):/*#__PURE__*/e.jsx(s.VerifyMethodSelectionScreen,{mfaMethods:a,onSelect:w,handleClose:b}):null};exports.MfaVerifyFlowScreen=u,exports.default=u;