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