UNPKG

@privy-io/react-auth

Version:

React client for the Privy Auth API

4 lines (3 loc) 2.77 kB
"use strict";var e=require("react/jsx-runtime"),r=require("lucide-react"),i=require("react"),a=require("styled-components"),t=require("./context-Cg3IEi80.js"),n=require("./internal-context-BJv4f_bO.js"),l=require("./index-DchMyzt9.js"),s=require("./privy-context-CrM9_s6G.js"),o=require("./useActiveWallet-BfMD5hzE.js"),c=require("./use-export-wallet-_EIyxyle.js"),u=require("./ModalHeader-C5Wuo3-1.js"),d=require("./Chip-C6r7fZiR.js"),p=require("./EmailInputForm-Y-nHsEtF.js"),m=require("./ErrorMessage-BfTVyue9.js");const g=/*#__PURE__*/i.forwardRef(((a,p)=>{let[g,x]=i.useState(a.defaultValue||""),[E,v]=i.useState(""),[S,C]=i.useState(!1),{authenticated:q}=s.usePrivyContext(),{initLoginWithEmail:b}=n.usePrivyInternal(),{navigate:P,setModalData:k,currentScreen:f,data:w}=s.usePrivyModal(),{enabled:M,token:I}=l.useCaptcha(),[L,A]=i.useState(!1),{accountType:T}=o.useRecentlyUsedLogin(),D=t.useAppConfig();i.useEffect((()=>{!g&&D.disablePlusEmails&&w?.inlineError?.error instanceof n.PrivyError&&w?.inlineError?.error.privyErrorCode===n.PrivyErrorCode.DISALLOWED_PLUS_EMAIL&&!E&&v("Please enter a valid email address without a '+'."),E&&v("")}),[g]);let F=c.validateEmail(g),U=S||!F,R=()=>{var e;k({login:w?.login,inlineError:void 0}),!M||I||q?(e=I,C(!0),b({email:g,captchaToken:e,disableSignup:w?.login?.disableSignup,withPrivyUi:!0}).then((()=>{P("AwaitingPasswordlessCodeScreen")})).catch((e=>{k({errorModalData:{error:e,previousScreen:f||"LandingScreen"}}),P("ErrorScreen")})).finally((()=>{C(!1)}))):(k({captchaModalData:{callback:e=>b({email:g,captchaToken:e,withPrivyUi:!0}),userIntentRequired:!1,onSuccessNavigateTo:"AwaitingPasswordlessCodeScreen",onErrorNavigateTo:"ErrorScreen"}}),P("CaptchaScreen"))};/*#__PURE__*/return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsxs(h,{children:[E&&/*#__PURE__*/e.jsx(m.ErrorMessage,{style:{display:"block",marginTop:"0.25rem",textAlign:"left"},children:E}),/*#__PURE__*/e.jsxs(y,{stacked:a.stacked,$error:!!E,children:[/*#__PURE__*/e.jsx(j,{children:/*#__PURE__*/e.jsx(r.Mail,{})}),/*#__PURE__*/e.jsx("input",{ref:p,id:"email-input",className:"login-method-button",type:"email",placeholder:"your@email.com",onFocus:()=>A(!0),onChange:e=>x(e.target.value),onKeyUp:e=>{"Enter"===e.key&&R()},value:g,autoComplete:"email"}),"email"!==T||L?a.stacked?/*#__PURE__*/e.jsx("span",{}):/*#__PURE__*/e.jsx(u.EmbeddedButton,{isSubmitting:S,onClick:R,disabled:U,children:"Submit"}):/*#__PURE__*/e.jsx(d.Chip,{color:"gray",children:"Recent"})]})]}),a.stacked?/*#__PURE__*/e.jsx(u.PrimaryButton,{loadingText:null,loading:S,disabled:U,onClick:R,style:{width:"100%"},children:"Submit"}):null]})}));let h=p.InputContainerForm,y=p.EmailInputForm,j=a.styled(o.LoginMethodIconWrapper)` display: inline-flex; `;exports.ConnectEmailForm=g;