@privy-io/react-auth
Version:
React client for the Privy Auth API
15 lines (13 loc) • 3.95 kB
JavaScript
"use strict";var e=require("react/jsx-runtime"),r=require("@heroicons/react/24/outline/ExclamationTriangleIcon"),t=require("@heroicons/react/24/outline/LockClosedIcon"),o=require("react"),i=require("./get-is-unified-wallet-UpdjHxOV.js"),l=require("./ModalHeader-BCPQgekO.js"),n=require("styled-components"),s=require("./Subtitle-CR8zM7ZJ.js"),a=require("./Title-ifTy35V5.js"),c=require("./context-D-ZJYjUg.js"),u=require("./internal-context-BJv4f_bO.js"),d=require("./useActiveWallet-Cn6zOXx5.js");function y(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("@privy-io/are-addresses-equal"),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("@privy-io/js-sdk-core"),require("tinycolor2"),require("ofetch"),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");var h=/*#__PURE__*/y(r),v=/*#__PURE__*/y(t);const f=n.styled.div`
&& {
border-width: 4px;
}
display: flex;
justify-content: center;
align-items: center;
padding: 1rem;
aspect-ratio: 1;
border-style: solid;
border-color: ${e=>e.$color??"var(--privy-color-accent)"};
border-radius: 50%;
`,j={component:()=>{let{user:r}=i.usePrivyContext(),{client:t,walletProxy:n,refreshSessionAndUser:y,closePrivyModal:j}=u.usePrivyInternal(),g=i.usePrivyModal(),{entropyId:q,entropyIdVerifier:m}=g.data?.recoverWallet,[x,w]=o.useState(!1),[p,S]=o.useState(null),[b,C]=o.useState(null);function I(){if(!x){if(b)return g.data?.setWalletPassword?.onFailure(b),void j();if(!p)return g.data?.setWalletPassword?.onFailure(Error("User exited set recovery flow")),void j()}}g.onUserCloseViaDialogOrKeybindRef.current=I;let P=!(!x&&!p);return b?/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(l.ModalHeader,{onClose:I},"header"),/*#__PURE__*/e.jsx(f,{$color:"var(--privy-color-error)",style:{alignSelf:"center"},children:/*#__PURE__*/e.jsx(h.default,{height:38,width:38,stroke:"var(--privy-color-error)"})}),/*#__PURE__*/e.jsx(a.Title,{style:{marginTop:"0.5rem"},children:"Something went wrong"}),/*#__PURE__*/e.jsx(d.Grow,{style:{minHeight:"2rem"}}),/*#__PURE__*/e.jsx(l.PrimaryButtonWithoutGray,{onClick:()=>C(null),children:"Try again"}),/*#__PURE__*/e.jsx(l.BlobbyFooter,{})]}):/*#__PURE__*/e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(l.ModalHeader,{onClose:I},"header"),/*#__PURE__*/e.jsx(v.default,{style:{width:"3rem",height:"3rem",alignSelf:"center"}}),/*#__PURE__*/e.jsx(a.Title,{style:{marginTop:"0.5rem"},children:"Automatically secure your account"}),/*#__PURE__*/e.jsx(s.Subtitle,{style:{marginTop:"1rem"},children:"When you log into a new device, you’ll only need to authenticate to access your account. Never get logged out if you forget your password."}),/*#__PURE__*/e.jsx(d.Grow,{style:{minHeight:"2rem"}}),/*#__PURE__*/e.jsx(l.PrimaryButtonWithoutGray,{loading:x,disabled:P,onClick:()=>async function(){w(!0);try{let e=await t.getAccessToken(),o=i.getPrivyWalletWithAddress(r,q);if(!e||!n||!o)return;if(!(await n.setRecovery({accessToken:e,entropyId:q,entropyIdVerifier:m,existingRecoveryMethod:o.recoveryMethod,recoveryMethod:"privy"})).entropyId)throw Error("Unable to set recovery on wallet");let l=await y();if(!l)throw Error("Unable to set recovery on wallet");let s=i.getPrivyWalletWithAddress(l,o.address);if(!s)throw Error("Unabled to set recovery on wallet");S(!!l),setTimeout((()=>{g.data?.setWalletPassword?.onSuccess(s),j()}),c.DEFAULT_SUCCESS_SCREEN_DURATION_MS)}catch(e){C(e)}finally{w(!1)}}(),children:p?"Success":"Confirm"}),/*#__PURE__*/e.jsx(l.BlobbyFooter,{})]})}};exports.SetAutomaticRecoveryScreen=j,exports.default=j;