@privy-io/react-auth
Version:
React client for the Privy Auth API
2 lines (1 loc) • 5.18 kB
JavaScript
"use strict";var e=require("react/jsx-runtime"),r=require("@scure/base"),i=require("lucide-react"),t=require("react"),o=require("styled-components"),s=require("viem"),n=require("@privy-io/js-sdk-core"),a=require("./CopyToClipboard-fd8Z3kQX.js"),l=require("./Layouts-dRL0OSpp.js"),c=require("./JsonTree-xaeo0q6z.js"),d=require("./prepareFundingModalData-Cnd6rhhJ.js"),u=require("./context-DFq1obBO.js"),p=require("./internal-context-NWsAL807.js"),y=require("./get-is-unified-wallet-D4ouXJpi.js"),g=require("./ScreenLayout-BeH-Q6N2.js");require("./copy-BiZ7dtqy.js"),require("eventemitter3"),require("tinycolor2"),require("ofetch"),require("./Button-Bm_Ft0Dw.js"),require("./useActiveWallet-BOX8xCn9.js"),require("zustand"),require("react-device-detect"),require("./events-context-Di6--rDg.js"),require("viem/utils"),require("./getPublicClient-CGlodIp_.js"),require("./useWallets-BLFNjTwC.js"),require("./Screen-D9Tvi297.js"),require("./ModalHeader-DB7Tbjwz.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("./index-CRFXS9pP.js");const x=/*#__PURE__*/o.styled.img.withConfig({displayName:"StyledLogo",componentId:"sc-68c1b1ea-0"})(["&&{height:",";width:",";border-radius:16px;margin-bottom:12px;}"],(e=>"sm"===e.size?"65px":"140px"),(e=>"sm"===e.size?"65px":"140px"));let h=e=>{if(!s.isHex(e))return e;try{let r=s.hexToString(e);return r.includes("�")?e:r}catch{return e}},m=e=>{try{let i=r.base64.decode(e),t=(new TextDecoder).decode(i);return t.includes("�")?e:t}catch{return e}},q=r=>{let{types:i,primaryType:t,...o}=r.typedData;/*#__PURE__*/return e.jsxs(e.Fragment,{children:[/*#__PURE__*/e.jsx(j,{data:o}),/*#__PURE__*/e.jsx(a.CopytoClipboardButton,{text:(s=r.typedData,JSON.stringify(s,null,2)),itemName:"full payload to clipboard"})," "]});var s};const C=({method:r,messageData:t,copy:o,iconUrl:s,isLoading:n,success:a,walletProxyIsLoading:c,errorMessage:d,isCancellable:u,onSign:p,onCancel:y,onClose:C})=>/*#__PURE__*/e.jsx(g.ScreenLayout,{title:o.title,subtitle:o.description,showClose:!0,onClose:C,icon:i.Edit,iconVariant:"subtle",helpText:d?/*#__PURE__*/e.jsx(S,{children:d}):void 0,primaryCta:{label:o.buttonText,onClick:p,disabled:n||a||c,loading:n},secondaryCta:u?{label:"Not now",onClick:y,disabled:n||a||c}:void 0,watermark:!0,children:/*#__PURE__*/e.jsxs(l.FixedGappedContainer,{children:[s?/*#__PURE__*/e.jsx(x,{style:{alignSelf:"center"},size:"sm",src:s,alt:"app image"}):null,/*#__PURE__*/e.jsxs(E,{children:["personal_sign"===r&&/*#__PURE__*/e.jsx(T,{children:h(t)}),"eth_signTypedData_v4"===r&&/*#__PURE__*/e.jsx(q,{typedData:t}),"solana_signMessage"===r&&/*#__PURE__*/e.jsx(T,{children:m(t)})]})]})}),v={component:()=>{let{authenticated:r}=y.usePrivyContext(),{initializeWalletProxy:i,closePrivyModal:o}=p.usePrivyInternal(),{navigate:s,data:a,onUserCloseViaDialogOrKeybindRef:l}=y.usePrivyModal(),[c,g]=t.useState(!0),[x,h]=t.useState(""),[m,q]=t.useState(),[v,E]=t.useState(null),[S,j]=t.useState(!1);t.useEffect((()=>{r||s("LandingScreen")}),[r]),t.useEffect((()=>{i(u.WALLET_PROXY_TIMEOUT).then((e=>{g(!1),e||(h("An error has occurred, please try again."),q(new d.PrivyProviderRpcError(new d.ProviderRpcError(x,n.ProviderErrors.E32603_DEFAULT_INTERNAL_ERROR.eipCode))))}))}),[]);let{method:T,data:w,confirmAndSign:f,onSuccess:R,onFailure:b,uiOptions:P}=a.signMessage,_={title:P?.title||"Sign message",description:P?.description||"Signing this message will not cost you any fees.",buttonText:P?.buttonText||"Sign and continue"},L=e=>{e?R(e):b(m||new d.PrivyProviderRpcError(new d.ProviderRpcError("The user rejected the request.",n.ProviderErrors.E4001_USER_REJECTED_REQUEST.eipCode))),o({shouldCallAuthOnSuccess:!1}),setTimeout((()=>{E(null),h(""),q(void 0)}),200)};l.current=()=>{L(v)};/*#__PURE__*/return e.jsx(C,{method:T,messageData:w,copy:_,iconUrl:P?.iconUrl&&"string"==typeof P.iconUrl?P.iconUrl:void 0,isLoading:S,success:null!==v,walletProxyIsLoading:c,errorMessage:x,isCancellable:P?.isCancellable,onSign:async()=>{j(!0),h("");try{let e=await f();E(e),j(!1),setTimeout((()=>{L(e)}),u.DEFAULT_SUCCESS_SCREEN_DURATION_MS)}catch(e){console.error(e),h("An error has occurred, please try again."),q(new d.PrivyProviderRpcError(new d.ProviderRpcError(x,n.ProviderErrors.E32603_DEFAULT_INTERNAL_ERROR.eipCode))),j(!1)}},onCancel:()=>L(null),onClose:()=>L(v)})}};let E=/*#__PURE__*/o.styled.div.withConfig({displayName:"MessageContainer",componentId:"sc-124260c0-0"})(["flex:1;display:flex;flex-direction:column;gap:16px;"]),S=/*#__PURE__*/o.styled.p.withConfig({displayName:"ErrorText",componentId:"sc-124260c0-1"})(["&&{margin:0;width:100%;text-align:center;color:var(--privy-color-error-dark);font-size:14px;line-height:22px;}"]),j=/*#__PURE__*/o.styled(c.DisplayJsonTree).withConfig({displayName:"StyledDisplayJsonTree",componentId:"sc-124260c0-2"})(["margin-top:0;"]),T=/*#__PURE__*/o.styled(c.Message).withConfig({displayName:"StyledMessage",componentId:"sc-124260c0-3"})(["margin-top:0;"]);exports.SignRequestScreen=v,exports.SignRequestView=C,exports.default=v;