@privy-io/react-auth
Version:
React client for the Privy Auth API
2 lines (1 loc) • 4.27 kB
JavaScript
"use strict";var e=require("react/jsx-runtime"),r=require("@heroicons/react/24/outline/EnvelopeIcon"),i=require("./Layouts-D3TOcPhm.js"),t=require("lucide-react"),a=require("react"),s=require("./context-Cg3IEi80.js"),o=require("./index-DchMyzt9.js"),u=require("./internal-context-BJv4f_bO.js"),n=require("./privy-context-CrM9_s6G.js"),l=require("./useActiveWallet-BfMD5hzE.js"),d=require("./use-export-wallet-_EIyxyle.js"),c=require("./ModalHeader-C5Wuo3-1.js"),q=require("./EmailInputForm-Y-nHsEtF.js"),p=require("./ErrorMessage-BfTVyue9.js"),m=require("./ScreenLayout-C4QHZMbl.js");function j(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("styled-components"),require("@privy-io/js-sdk-core"),require("tinycolor2"),require("uuid"),require("jose"),require("eventemitter3"),require("./useWallets-dikDynAG.js"),require("viem"),require("@coinbase/wallet-sdk"),require("@privy-io/ethereum"),require("mipd"),require("react-device-detect"),require("viem/utils"),require("@privy-io/popup"),require("./paths-DizMb-lU.js"),require("./usePrivy-C-Rab7yP.js"),require("./events-context-Di6--rDg.js"),require("@scure/base"),require("zustand"),require("@headlessui/react"),require("@walletconnect/ethereum-provider"),require("@privy-io/urls"),require("./PrivyPluginContext-DsgaS6n9.js"),require("./getEmbeddedConnectedWallet-pJd-l936.js"),require("ofetch"),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("@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-DWnRbzSA.js"),require("./index-ByFhjjzH.js");var h=/*#__PURE__*/j(r);const v=/*#__PURE__*/a.forwardRef(((r,i)=>{let[q,m]=a.useState(""),[j,h]=a.useState(""),[v,g]=a.useState(!1),{authenticated:w,user:S}=n.usePrivyContext(),{initUpdateEmail:f}=u.usePrivyInternal(),{navigate:E,setModalData:b,currentScreen:k}=n.usePrivyModal(),{enabled:C,token:A}=o.useCaptcha(),P=s.useAppConfig(),M=d.validateEmail(q)&&(P.disablePlusEmails&&q.includes("+")?(j||h("Please enter a valid email address without a '+'."),!1):(j&&h(""),!0)),I=v||!M,U=()=>{!C||A||w?(async e=>{if(!S?.email)throw Error("User is required to have an email address to update it.");g(!0);try{await f({oldAddress:S.email.address,newAddress:q,captchaToken:e}),E("AwaitingPasswordlessCodeScreen")}catch(e){b({errorModalData:{error:e,previousScreen:k||"LandingScreen"}}),E("ErrorScreen")}g(!1)})(A):(b({captchaModalData:{callback:e=>{if(!S?.email)throw Error("User is required to have an email address to update it.");return f({oldAddress:S.email.address,newAddress:q,captchaToken:e})},userIntentRequired:!1,onSuccessNavigateTo:"AwaitingPasswordlessCodeScreen",onErrorNavigateTo:"ErrorScreen"}}),E("CaptchaScreen"))};/*#__PURE__*/return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsxs(y,{children:[j&&/*#__PURE__*/e.jsx(p.ErrorMessage,{style:{marginTop:"0.25rem",textAlign:"left"},children:j}),/*#__PURE__*/e.jsxs(x,{$error:!!j,children:[/*#__PURE__*/e.jsx(l.LoginMethodIconWrapper,{children:/*#__PURE__*/e.jsx(t.Mail,{})}),/*#__PURE__*/e.jsx("input",{ref:i,id:"email-input",type:"email",placeholder:"your@email.com",onChange:e=>m(e.target.value),onKeyUp:e=>{"Enter"===e.key&&U()},value:q,autoComplete:"email"}),r.stacked?null:/*#__PURE__*/e.jsx(c.EmbeddedButton,{isSubmitting:v,onClick:U,disabled:I,children:"Submit"})]})]}),r.stacked?/*#__PURE__*/e.jsx(c.PrimaryButton,{loadingText:null,loading:v,disabled:I,onClick:U,style:{width:"100%"},children:"Submit"}):null]})}));let y=q.InputContainerForm,x=q.EmailUpdateForm;const g=({title:r="Update your email",subtitle:t="Add the email address you'd like to use going forward. We'll send you a confirmation code"})=>/*#__PURE__*/e.jsx(m.ScreenLayout,{title:r,subtitle:t,icon:h.default,watermark:!0,children:/*#__PURE__*/e.jsx(i.BottomPusherContainer,{children:/*#__PURE__*/e.jsx(v,{stacked:!0})})}),w={component:()=>/*#__PURE__*/e.jsx(g,{})};exports.UpdateEmailScreen=w,exports.UpdateEmailScreenView=g,exports.default=w;