@crossmint/client-sdk-react-ui 1.3.8 → 1.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +30 -19
- package/dist/index.d.ts +30 -19
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
- package/src/components/CrossmintCollectionView.test.tsx +24 -22
- package/src/components/CrossmintNFTDetail.test.tsx +24 -22
- package/src/components/embed/CrossmintPaymentElement.test.tsx +4 -3
- package/src/components/embed/EmbeddedCheckoutIFrame.tsx +6 -2
- package/src/components/embed/crypto/CryptoEmbeddedCheckoutIFrame.tsx +1 -1
- package/src/components/embed/fiat/FiatEmbeddedCheckout.tsx +2 -2
- package/src/components/embed/fiat/FiatEmbeddedCheckoutIFrame.tsx +1 -2
- package/src/components/hosted/CrossmintPayButton.test.tsx +21 -20
- package/src/consts/version.ts +1 -1
- package/src/hooks/index.ts +2 -1
- package/src/hooks/useCrossmint.test.tsx +17 -19
- package/src/hooks/useCrossmint.tsx +14 -10
- package/src/hooks/useWallet.ts +12 -0
- package/src/providers/CrossmintAuthProvider.tsx +15 -50
- package/src/providers/CrossmintWalletProvider.tsx +80 -0
- package/src/providers/index.ts +1 -0
- package/src/hooks/useAuth.ts +0 -15
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var $t=Object.create;var S=Object.defineProperty,Jt=Object.defineProperties,qt=Object.getOwnPropertyDescriptor,zt=Object.getOwnPropertyDescriptors,Qt=Object.getOwnPropertyNames,T=Object.getOwnPropertySymbols,Xt=Object.getPrototypeOf,K=Object.prototype.hasOwnProperty,tt=Object.prototype.propertyIsEnumerable;var j=(t,e,o)=>e in t?S(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,m=(t,e)=>{for(var o in e||(e={}))K.call(e,o)&&j(t,o,e[o]);if(T)for(var o of T(e))tt.call(e,o)&&j(t,o,e[o]);return t},et=(t,e)=>Jt(t,zt(e));var y=(t,e)=>{var o={};for(var n in t)K.call(t,n)&&e.indexOf(n)<0&&(o[n]=t[n]);if(t!=null&&T)for(var n of T(t))e.indexOf(n)<0&&tt.call(t,n)&&(o[n]=t[n]);return o};var Zt=(t,e)=>{for(var o in e)S(t,o,{get:e[o],enumerable:!0})},ot=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Qt(e))!K.call(t,a)&&a!==o&&S(t,a,{get:()=>e[a],enumerable:!(n=qt(e,a))||n.enumerable});return t};var N=(t,e,o)=>(o=t!=null?$t(Xt(t)):{},ot(e||!t||!t.__esModule?S(o,"default",{value:t,enumerable:!0}):o,t)),jt=t=>ot(S({},"__esModule",{value:!0}),t);var E=(t,e,o)=>new Promise((n,a)=>{var d=s=>{try{c(o.next(s))}catch(r){a(r)}},u=s=>{try{c(o.throw(s))}catch(r){a(r)}},c=s=>s.done?n(s.value):Promise.resolve(s.value).then(d,u);c((o=o.apply(t,e)).next())});var de={};Zt(de,{Chain:()=>xt.Chain,CrossmintAuthProvider:()=>me,CrossmintEvents:()=>D.CrossmintEvents,CrossmintNFTCollectionView:()=>te,CrossmintNFTDetail:()=>ee,CrossmintPayButton:()=>se,CrossmintPaymentElement:()=>oe,CrossmintProvider:()=>ie,WalletContext:()=>_,useAuth:()=>le,useCrossmint:()=>ae,useCrossmintEvents:()=>D.useCrossmintEvents});module.exports=jt(de);var F=require("@crossmint/client-sdk-base");var P="1.3.8";var nt=require("react/jsx-runtime");function te(t){(0,F.assertValidNFTCollectionViewProps)(t);let e=(0,F.getNFTCollectionViewSrc)(t,P);return(0,nt.jsx)("iframe",{src:e,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-collection-view"})}var A=require("@crossmint/client-sdk-base");var rt=require("react/jsx-runtime");function ee(t){(0,A.assertValidValidateNFTDetailProps)(t);let e=(0,A.getNFTDetailSrc)(t,P);return(0,rt.jsx)("iframe",{src:e,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-details"})}var B=require("@crossmint/client-sdk-base");var ct=require("@crossmint/client-sdk-base");var st=N(require("lodash.isequal"),1),R=require("react");function I(t,e){let o=(0,R.useRef)(e);(0,R.useEffect)(()=>{if(e.some((a,d)=>!(0,st.default)(a,o.current[d])))return o.current=e,t()},[e])}var at=N(require("bs58"),1),f=require("@crossmint/client-sdk-base");var b=require("react"),O=require("@crossmint/client-sdk-base");var it=require("react/jsx-runtime");function v(o){var n=o,{onInternalEvent:t}=n,e=y(n,["onInternalEvent"]);let{getUrl:a,listenToEvents:d,listenToInternalEvents:u}=(0,O.crossmintIFrameService)(e),[c,s]=(0,b.useState)(0),[r]=(0,b.useState)(a(e));return(0,b.useEffect)(()=>{let l=d(i=>{var h;return(h=e.onEvent)==null?void 0:h.call(e,i.data)});return()=>{l()}},[]),(0,b.useEffect)(()=>{let l=u(i=>{let{type:h,payload:H}=i.data;h===O.IncomingInternalEvents.UI_HEIGHT_CHANGED&&s(H.height),t==null||t(i.data)});return()=>{l()}},[]),(0,it.jsx)("iframe",{src:r,id:"crossmint-embedded-checkout.iframe",role:"crossmint-embedded-checkout.iframe",allow:"payment *",style:{boxShadow:"none",border:"none",padding:"0px",width:"100%",minWidth:"100%",overflow:"hidden",display:"block",userSelect:"none",transform:"translate(0px)",opacity:"1",transition:"ease 0s, opacity 0.4s ease 0.1s",height:`${c}px`}})}var mt=require("react/jsx-runtime");function $(t){let{emitInternalEvent:e}=(0,f.crossmintIFrameService)(t),{signer:o,paymentMethod:n}=t;function a(s){let{type:r,payload:l}=s;if(r===f.IncomingInternalEvents.CRYPTO_PAYMENT_INCOMING_TRANSACTION){let{serializedTransaction:i}=l;console.log("[Crossmint] Received incoming transaction",i),d(i)}if(r===f.IncomingInternalEvents.CRYPTO_CHAIN_SWITCH){let{chain:i}=l;console.log("[Crossmint] Received change of chain",i);let h=o.handleChainSwitch;if(h==null)throw new Error("switchNetwork function should have been defined");h(i)}}function d(s){return E(this,null,function*(){try{let r;switch(n){case"SOL":r=yield u(o,s);break;case"ETH":r=yield c(o,s);break;default:throw new Error(`Unsupported payment method ${n}`)}console.log("[Crossmint] Signed and sent transaction",r),e({type:f.OutgoingInternalEvents.CRYPTO_PAYMENT_USER_ACCEPTED,payload:{txId:r}})}catch(r){console.error("[Crossmint] Failed to sign and send transaction",r),e({type:f.OutgoingInternalEvents.CRYPTO_PAYMENT_USER_REJECTED,payload:{}})}})}function u(s,r){return E(this,null,function*(){let{Transaction:l}=yield import("@solana/web3.js"),i=l.from(at.default.decode(r));return console.log("[Crossmint] Deserialized SOL transaction",i),yield s.signAndSendTransaction(i)})}function c(s,r){return E(this,null,function*(){let{parse:l}=yield import("@ethersproject/transactions"),i=l(r);return console.log("[Crossmint] Deserialized ETH transaction",i),yield s.signAndSendTransaction(i)})}return I(()=>{e({type:"params-update",payload:(0,f.embeddedCheckoutPropsToUpdatableParamsPayload)(t)})},[t.signer.address,t.recipient,t.mintConfig,t.locale,t.currency,t.whPassThroughArgs,..."chain"in t.signer?[t.signer.chain]:[]]),(0,mt.jsx)(v,m({onInternalEvent:a},t))}var dt=require("react/jsx-runtime");function lt(t){if(!(0,ct.isCryptoEmbeddedCheckoutPropsWithSigner)(t))throw new Error("Invalid parameters: signer is required in versions < 2.0.0");return(0,dt.jsx)($,m({},t))}var W=require("@crossmint/client-sdk-base");var ut=require("react/jsx-runtime");function J(t){let{emitInternalEvent:e}=(0,W.crossmintIFrameService)(t);return I(()=>{e({type:"params-update",payload:(0,W.embeddedCheckoutPropsToUpdatableParamsPayload)(t)})},[t.recipient,t.mintConfig,t.locale,t.currency,t.whPassThroughArgs]),(0,ut.jsx)(v,m({},t))}var ht=require("react/jsx-runtime");function Ct(t){return(0,ht.jsx)(J,m({},t))}var q=require("react/jsx-runtime");function oe(t){if((0,B.isFiatEmbeddedCheckoutProps)(t))return(0,q.jsx)(Ct,m({},t));if((0,B.isCryptoEmbeddedCheckoutProps)(t))return(0,q.jsx)(lt,m({},t));throw new Error("Unsupported: Fiat is the only supported payment method.")}var Et=require("react"),Pt=require("react"),w=require("@crossmint/client-sdk-base");var M=require("react");function z(){let[t,e]=(0,M.useState)(!0);return(0,M.useEffect)(()=>{e(!1)},[]),{isServerSideRendering:t}}var pt=require("react-jss"),ne="#1e1e1e",ft=t=>t==="light",gt=t=>({buttonBgColor:ft(t)?"white":ne,paragraphColor:ft(t)?"black":"white"}),re={"@global":{"@import":"url('https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap')"},crossmintButton:{display:"flex","flex-direction":"row","align-items":"center",padding:"0.875rem 0.875rem","font-weight":"900",transition:"opacity ease-in-out 0.25s","border-radius":"0.5rem","font-family":'"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif',outline:"none",border:"none","box-shadow":"0px 8px 15px rgba(0, 0, 0, 0.1)","justify-content":"center",background:({buttonBgColor:t})=>t,"&:hover:enabled":{opacity:"0.6",cursor:"pointer"}},crossmintImg:{width:"21px",height:"21px","margin-right":"0.875rem"},crossmintParagraph:{color:({paragraphColor:t})=>t,margin:"0"}},yt=(0,pt.createUseStyles)(re);var p=require("react/jsx-runtime");function se(t){let Z=t,{className:e,disabled:o,onClick:n,style:a,tabIndex:d,theme:u="dark",mintTo:c,emailTo:s,listingId:r,auctionId:l,showOverlay:i=!0,mintConfig:h,whPassThroughArgs:H,environment:Tt,paymentMethod:k,preferredSigninMethod:Nt,dismissOverlayOnClick:Ft,prepay:At,locale:Q="en-US",currency:Rt="usd",successCallbackURL:Ot="",failureCallbackURL:Wt="",loginEmail:Bt="",projectId:Mt,getButtonText:U,checkoutProps:X={experimental:!1,display:"same-tab",paymentMethods:["fiat","ETH","SOL"]}}=Z,G=y(Z,["className","disabled","onClick","style","tabIndex","theme","mintTo","emailTo","listingId","auctionId","showOverlay","mintConfig","whPassThroughArgs","environment","paymentMethod","preferredSigninMethod","dismissOverlayOnClick","prepay","locale","currency","successCallbackURL","failureCallbackURL","loginEmail","projectId","getButtonText","checkoutProps"]),Lt="clientId"in G?G.clientId:G.collectionId,[x,Vt]=(0,Pt.useState)(!1),{isServerSideRendering:_t}=z(),{connect:Dt}=(0,w.crossmintModalService)({clientId:Lt,projectId:Mt,showOverlay:i,dismissOverlayOnClick:Ft,setConnecting:Vt,libVersion:P,environment:Tt,clientName:w.clientNames.reactUi,locale:Q,currency:Rt,successCallbackURL:Ot,failureCallbackURL:Wt,loginEmail:Bt}),{getButtonText:Ht,handleClick:Ut}=(0,w.crossmintPayButtonService)({onClick:n,connecting:x,paymentMethod:k,locale:Q,checkoutProps:X}),Gt=Kt=>Ut(Kt,()=>{Dt(h,c,s,r,H,k,Nt,At,X)}),Y=yt(gt(u)),Yt=(0,Et.useMemo)(()=>(0,p.jsx)("span",{className:Y.crossmintParagraph,role:"button-paragraph",children:U!=null?U(x,k||"fiat"):Ht(x)}),[x,U,k]);return(0,p.jsx)(p.Fragment,{children:!_t&&(0,p.jsxs)("button",{className:`${Y.crossmintButton} ${e||""}`,disabled:o,onClick:Gt,style:m({},a),tabIndex:d,children:[(0,p.jsx)("img",{className:Y.crossmintImg,src:"https://www.crossmint.io/assets/crossmint/logo.svg",alt:"Crossmint logo"}),Yt]})})}var C=require("react"),bt=require("@crossmint/common-sdk-base");var St=require("react/jsx-runtime"),wt=(0,C.createContext)(null);function ie(o){var n=o,{children:t}=n,e=y(n,["children"]);let[a,d]=(0,C.useState)(0),u=(0,C.useRef)(new Proxy((0,bt.createCrossmint)(e),{set(r,l,i){return l==="jwt"&&r.jwt!==i&&d(h=>h+1),Reflect.set(r,l,i)}})),c=(0,C.useCallback)(r=>{r!==u.current.jwt&&(u.current.jwt=r)},[]),s=(0,C.useMemo)(()=>({get crossmint(){return u.current},setJwt:c}),[c,a]);return(0,St.jsx)(wt.Provider,{value:s,children:t})}function ae(){let t=(0,C.useContext)(wt);if(t==null)throw new Error("useCrossmint must be used within a CrossmintProvider");return t}var g=require("react"),V=require("@crossmint/client-sdk-auth-core/client"),It=require("@crossmint/client-sdk-smart-wallet");var L=require("react/jsx-runtime"),_=(0,g.createContext)({wallet:null});function me(t){return(0,L.jsx)(V.AuthProvider,et(m({},t),{children:(0,L.jsx)(ce,m({},t))}))}function ce(t){let{jwt:e}=(0,V.useAuth)(),[o,n]=(0,g.useState)(null),a=(0,g.useMemo)(()=>It.SmartWalletSDK.init({clientApiKey:t.apiKey}),[t.apiKey]),d=u=>E(this,null,function*(){try{let c=yield a.getOrCreateWallet({jwt:u},t.embeddedWallets.defaultChain);n(c)}catch(c){throw console.error("There was an error creating a wallet ",c),c}});return(0,g.useEffect)(()=>{t.embeddedWallets.createOnLogin&&e&&(console.log("Getting or Creating wallet"),d(e)),o&&!e&&(console.log("Clearing wallet"),n(null))},[e,t.embeddedWallets.createOnLogin]),(0,L.jsx)(_.Provider,{value:{wallet:o},children:t.children})}var vt=require("react"),kt=require("@crossmint/client-sdk-auth-core/client");function le(){let t=(0,vt.useContext)(_);if(!t)throw new Error("useAuth must be used within a CrossmintAuthProvider");let e=(0,kt.useAuth)();return m(m({},e),t)}var D=require("@crossmint/client-sdk-base"),xt=require("@crossmint/client-sdk-smart-wallet");0&&(module.exports={Chain,CrossmintAuthProvider,CrossmintEvents,CrossmintNFTCollectionView,CrossmintNFTDetail,CrossmintPayButton,CrossmintPaymentElement,CrossmintProvider,WalletContext,useAuth,useCrossmint,useCrossmintEvents});
|
|
1
|
+
"use strict";var Qt=Object.create;var v=Object.defineProperty,Xt=Object.defineProperties,Zt=Object.getOwnPropertyDescriptor,te=Object.getOwnPropertyDescriptors,ee=Object.getOwnPropertyNames,R=Object.getOwnPropertySymbols,oe=Object.getPrototypeOf,K=Object.prototype.hasOwnProperty,rt=Object.prototype.propertyIsEnumerable;var ot=(t,e,o)=>e in t?v(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,c=(t,e)=>{for(var o in e||(e={}))K.call(e,o)&&ot(t,o,e[o]);if(R)for(var o of R(e))rt.call(e,o)&&ot(t,o,e[o]);return t},F=(t,e)=>Xt(t,te(e));var y=(t,e)=>{var o={};for(var r in t)K.call(t,r)&&e.indexOf(r)<0&&(o[r]=t[r]);if(t!=null&&R)for(var r of R(t))e.indexOf(r)<0&&rt.call(t,r)&&(o[r]=t[r]);return o};var re=(t,e)=>{for(var o in e)v(t,o,{get:e[o],enumerable:!0})},nt=(t,e,o,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of ee(e))!K.call(t,s)&&s!==o&&v(t,s,{get:()=>e[s],enumerable:!(r=Zt(e,s))||r.enumerable});return t};var O=(t,e,o)=>(o=t!=null?Qt(oe(t)):{},nt(e||!t||!t.__esModule?v(o,"default",{value:t,enumerable:!0}):o,t)),ne=t=>nt(v({},"__esModule",{value:!0}),t);var E=(t,e,o)=>new Promise((r,s)=>{var u=i=>{try{l(o.next(i))}catch(n){s(n)}},d=i=>{try{l(o.throw(i))}catch(n){s(n)}},l=i=>i.done?r(i.value):Promise.resolve(i.value).then(u,d);l((o=o.apply(t,e)).next())});var fe={};re(fe,{Chain:()=>Ft.Chain,CrossmintAuthProvider:()=>pe,CrossmintEvents:()=>U.CrossmintEvents,CrossmintNFTCollectionView:()=>se,CrossmintNFTDetail:()=>ie,CrossmintPayButton:()=>ce,CrossmintPaymentElement:()=>ae,CrossmintProvider:()=>de,CrossmintWalletProvider:()=>Q,WalletContext:()=>H,useAuth:()=>Nt.useAuth,useCrossmint:()=>x,useCrossmintEvents:()=>U.useCrossmintEvents,useWallet:()=>Ce});module.exports=ne(fe);var B=require("@crossmint/client-sdk-base");var w="1.3.9";var st=require("react/jsx-runtime");function se(t){(0,B.assertValidNFTCollectionViewProps)(t);let e=(0,B.getNFTCollectionViewSrc)(t,w);return(0,st.jsx)("iframe",{src:e,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-collection-view"})}var A=require("@crossmint/client-sdk-base");var it=require("react/jsx-runtime");function ie(t){(0,A.assertValidValidateNFTDetailProps)(t);let e=(0,A.getNFTDetailSrc)(t,w);return(0,it.jsx)("iframe",{src:e,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-details"})}var _=require("@crossmint/client-sdk-base");var dt=require("@crossmint/client-sdk-base");var mt=O(require("bs58"),1),f=require("@crossmint/client-sdk-base");var at=O(require("lodash.isequal"),1),L=require("react");function k(t,e){let o=(0,L.useRef)(e);(0,L.useEffect)(()=>{if(e.some((s,u)=>!(0,at.default)(s,o.current[u])))return o.current=e,t()},[e])}var P=require("react"),V=require("@crossmint/client-sdk-base");var lt=require("react/jsx-runtime");function I(o){var r=o,{onInternalEvent:t}=r,e=y(r,["onInternalEvent"]);let{getUrl:s,listenToEvents:u,listenToInternalEvents:d}=(0,V.crossmintIFrameService)(e),[l,i]=(0,P.useState)(0),[n]=(0,P.useState)(s(e));return(0,P.useEffect)(()=>{let m=u(a=>{var C;return(C=e.onEvent)==null?void 0:C.call(e,a.data)});return()=>{m()}},[]),(0,P.useEffect)(()=>{let m=d(a=>{let{type:C,payload:S}=a.data;C===V.IncomingInternalEvents.UI_HEIGHT_CHANGED&&i(S.height),t==null||t(a.data)});return()=>{m()}},[]),(0,lt.jsx)("iframe",{src:n,id:"crossmint-embedded-checkout.iframe",role:"crossmint-embedded-checkout.iframe",allow:"payment *",style:{boxShadow:"none",border:"none",padding:"0px",width:"100%",minWidth:"100%",overflow:"hidden",display:"block",userSelect:"none",transform:"translate(0px)",opacity:"1",transition:"ease 0s, opacity 0.4s ease 0.1s",height:`${l}px`}})}var ct=require("react/jsx-runtime");function $(t){let{emitInternalEvent:e}=(0,f.crossmintIFrameService)(t),{signer:o,paymentMethod:r}=t;function s(i){let{type:n,payload:m}=i;if(n===f.IncomingInternalEvents.CRYPTO_PAYMENT_INCOMING_TRANSACTION){let{serializedTransaction:a}=m;console.log("[Crossmint] Received incoming transaction",a),u(a)}if(n===f.IncomingInternalEvents.CRYPTO_CHAIN_SWITCH){let{chain:a}=m;console.log("[Crossmint] Received change of chain",a);let C=o.handleChainSwitch;if(C==null)throw new Error("switchNetwork function should have been defined");C(a)}}function u(i){return E(this,null,function*(){try{let n;switch(r){case"SOL":n=yield d(o,i);break;case"ETH":n=yield l(o,i);break;default:throw new Error(`Unsupported payment method ${r}`)}console.log("[Crossmint] Signed and sent transaction",n),e({type:f.OutgoingInternalEvents.CRYPTO_PAYMENT_USER_ACCEPTED,payload:{txId:n}})}catch(n){console.error("[Crossmint] Failed to sign and send transaction",n),e({type:f.OutgoingInternalEvents.CRYPTO_PAYMENT_USER_REJECTED,payload:{}})}})}function d(i,n){return E(this,null,function*(){let{Transaction:m}=yield import("@solana/web3.js"),a=m.from(mt.default.decode(n));return console.log("[Crossmint] Deserialized SOL transaction",a),yield i.signAndSendTransaction(a)})}function l(i,n){return E(this,null,function*(){let{parse:m}=yield import("@ethersproject/transactions"),a=m(n);return console.log("[Crossmint] Deserialized ETH transaction",a),yield i.signAndSendTransaction(a)})}return k(()=>{e({type:"params-update",payload:(0,f.embeddedCheckoutPropsToUpdatableParamsPayload)(t)})},[t.signer.address,t.recipient,t.mintConfig,t.locale,t.currency,t.whPassThroughArgs,..."chain"in t.signer?[t.signer.chain]:[]]),(0,ct.jsx)(I,c({onInternalEvent:s},t))}var Ct=require("react/jsx-runtime");function ut(t){if(!(0,dt.isCryptoEmbeddedCheckoutPropsWithSigner)(t))throw new Error("Invalid parameters: signer is required in versions < 2.0.0");return(0,Ct.jsx)($,c({},t))}var M=require("@crossmint/client-sdk-base");var pt=require("react/jsx-runtime");function j(t){let{emitInternalEvent:e}=(0,M.crossmintIFrameService)(t);return k(()=>{e({type:"params-update",payload:(0,M.embeddedCheckoutPropsToUpdatableParamsPayload)(t)})},[t.recipient,t.mintConfig,t.locale,t.currency,t.whPassThroughArgs]),(0,pt.jsx)(I,c({},t))}var ht=require("react/jsx-runtime");function ft(t){return(0,ht.jsx)(j,c({},t))}var q=require("react/jsx-runtime");function ae(t){if((0,_.isFiatEmbeddedCheckoutProps)(t))return(0,q.jsx)(ft,c({},t));if((0,_.isCryptoEmbeddedCheckoutProps)(t))return(0,q.jsx)(ut,c({},t));throw new Error("Unsupported: Fiat is the only supported payment method.")}var Pt=require("react"),bt=require("react"),b=require("@crossmint/client-sdk-base");var D=require("react");function z(){let[t,e]=(0,D.useState)(!0);return(0,D.useEffect)(()=>{e(!1)},[]),{isServerSideRendering:t}}var Et=require("react-jss"),le="#1e1e1e",gt=t=>t==="light",yt=t=>({buttonBgColor:gt(t)?"white":le,paragraphColor:gt(t)?"black":"white"}),me={"@global":{"@import":"url('https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap')"},crossmintButton:{display:"flex","flex-direction":"row","align-items":"center",padding:"0.875rem 0.875rem","font-weight":"900",transition:"opacity ease-in-out 0.25s","border-radius":"0.5rem","font-family":'"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif',outline:"none",border:"none","box-shadow":"0px 8px 15px rgba(0, 0, 0, 0.1)","justify-content":"center",background:({buttonBgColor:t})=>t,"&:hover:enabled":{opacity:"0.6",cursor:"pointer"}},crossmintImg:{width:"21px",height:"21px","margin-right":"0.875rem"},crossmintParagraph:{color:({paragraphColor:t})=>t,margin:"0"}},wt=(0,Et.createUseStyles)(me);var h=require("react/jsx-runtime");function ce(t){let et=t,{className:e,disabled:o,onClick:r,style:s,tabIndex:u,theme:d="dark",mintTo:l,emailTo:i,listingId:n,auctionId:m,showOverlay:a=!0,mintConfig:C,whPassThroughArgs:S,environment:Ot,paymentMethod:W,preferredSigninMethod:Bt,dismissOverlayOnClick:At,prepay:Lt,locale:Z="en-US",currency:Vt="usd",successCallbackURL:Mt="",failureCallbackURL:_t="",loginEmail:Dt="",projectId:Ht,getButtonText:G,checkoutProps:tt={experimental:!1,display:"same-tab",paymentMethods:["fiat","ETH","SOL"]}}=et,Y=y(et,["className","disabled","onClick","style","tabIndex","theme","mintTo","emailTo","listingId","auctionId","showOverlay","mintConfig","whPassThroughArgs","environment","paymentMethod","preferredSigninMethod","dismissOverlayOnClick","prepay","locale","currency","successCallbackURL","failureCallbackURL","loginEmail","projectId","getButtonText","checkoutProps"]),Ut="clientId"in Y?Y.clientId:Y.collectionId,[N,Gt]=(0,bt.useState)(!1),{isServerSideRendering:Yt}=z(),{connect:Jt}=(0,b.crossmintModalService)({clientId:Ut,projectId:Ht,showOverlay:a,dismissOverlayOnClick:At,setConnecting:Gt,libVersion:w,environment:Ot,clientName:b.clientNames.reactUi,locale:Z,currency:Vt,successCallbackURL:Mt,failureCallbackURL:_t,loginEmail:Dt}),{getButtonText:Kt,handleClick:$t}=(0,b.crossmintPayButtonService)({onClick:r,connecting:N,paymentMethod:W,locale:Z,checkoutProps:tt}),jt=zt=>$t(zt,()=>{Jt(C,l,i,n,S,W,Bt,Lt,tt)}),J=wt(yt(d)),qt=(0,Pt.useMemo)(()=>(0,h.jsx)("span",{className:J.crossmintParagraph,role:"button-paragraph",children:G!=null?G(N,W||"fiat"):Kt(N)}),[N,G,W]);return(0,h.jsx)(h.Fragment,{children:!Yt&&(0,h.jsxs)("button",{className:`${J.crossmintButton} ${e||""}`,disabled:o,onClick:jt,style:c({},s),tabIndex:u,children:[(0,h.jsx)("img",{className:J.crossmintImg,src:"https://www.crossmint.io/assets/crossmint/logo.svg",alt:"Crossmint logo"}),qt]})})}var p=require("react"),St=require("@crossmint/client-sdk-auth-core/client"),vt=require("@crossmint/common-sdk-base");var It=require("react/jsx-runtime"),kt=(0,p.createContext)(null);function de(o){var r=o,{children:t}=r,e=y(r,["children"]);var n;let[s,u]=(0,p.useState)(0),d=(0,p.useRef)(new Proxy((0,vt.createCrossmint)(F(c({},e),{jwt:(n=e.jwt)!=null?n:(0,St.getCachedJwt)()})),{set(m,a,C){return a==="jwt"&&m.jwt!==C&&u(S=>S+1),Reflect.set(m,a,C)}})),l=(0,p.useCallback)(m=>{m!==d.current.jwt&&(d.current.jwt=m)},[]),i=(0,p.useMemo)(()=>({get crossmint(){return d.current},setJwt:l}),[l,s]);return(0,It.jsx)(kt.Provider,{value:i,children:t})}function x(t){let e=(0,p.useContext)(kt);if(e==null)throw new Error(t!=null?t:"useCrossmint must be used within a CrossmintProvider");return e}var g=require("react"),T=require("@crossmint/client-sdk-smart-wallet");var Tt=require("react/jsx-runtime");function ue(t){if(t instanceof T.SmartWalletError)return{status:"loading-error",error:t};let e=t instanceof Error?t.message:String(t),o=t instanceof Error?t.stack:void 0;return{status:"loading-error",error:new T.SmartWalletError(`Unknown Wallet Error: ${e}`,o)}}function xt(t,e){return e!=null&&!(t==="in-progress"||t==="loaded")}var H=(0,g.createContext)({status:"not-loaded",getOrCreateWallet:()=>E(void 0,null,function*(){})});function Q({children:t,config:e}){let{crossmint:o}=x("CrossmintWalletProvider must be used within CrossmintProvider"),[r,s]=(0,g.useState)({status:"not-loaded"}),u=(0,g.useMemo)(()=>T.SmartWalletSDK.init({clientApiKey:o.apiKey}),[o.apiKey]),d=()=>E(this,null,function*(){if(xt(r.status,o.jwt))try{s({status:"in-progress"});let l=yield u.getOrCreateWallet({jwt:o.jwt},e.defaultChain);s({status:"loaded",wallet:l})}catch(l){console.error("There was an error creating a wallet ",l),s(ue(l))}});return(0,g.useEffect)(()=>{if(e.createOnLogin==="all-users"&&xt(r.status,o.jwt)){console.log("Getting or Creating wallet"),d();return}if(r.status==="loaded"&&o.jwt==null){console.log("Clearing wallet"),s({status:"not-loaded"});return}},[o.jwt,e.createOnLogin,r.status]),(0,Tt.jsx)(H.Provider,{value:F(c({},r),{getOrCreateWallet:d}),children:t})}var Wt=require("react");function Ce(){let t=(0,Wt.useContext)(H);if(!t)throw new Error("useWallet must be used within CrossmintAuthProvider or CrossmintWalletProvider");return t}var Nt=require("@crossmint/client-sdk-auth-core/client");var Rt=require("@crossmint/client-sdk-auth-core/client");var X=require("react/jsx-runtime");function pe({embeddedWallets:t,children:e}){let{crossmint:o,setJwt:r}=x("CrossmintAuthProvider must be used within CrossmintProvider");return(0,X.jsx)(Rt.AuthProvider,{setJwtToken:r,crossmint:o,children:(0,X.jsx)(Q,{config:t,children:e})})}var U=require("@crossmint/client-sdk-base"),Ft=require("@crossmint/client-sdk-smart-wallet");0&&(module.exports={Chain,CrossmintAuthProvider,CrossmintEvents,CrossmintNFTCollectionView,CrossmintNFTDetail,CrossmintPayButton,CrossmintPaymentElement,CrossmintProvider,CrossmintWalletProvider,WalletContext,useAuth,useCrossmint,useCrossmintEvents,useWallet});
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/components/CrossmintNFTCollectionView.tsx","../src/consts/version.ts","../src/components/CrossmintNFTDetail.tsx","../src/components/embed/index.tsx","../src/components/embed/crypto/CryptoEmbeddedCheckout.tsx","../src/hooks/useDeepEffect.ts","../src/components/embed/crypto/CryptoEmbeddedCheckoutIFrame.tsx","../src/components/embed/EmbeddedCheckoutIFrame.tsx","../src/components/embed/fiat/FiatEmbeddedCheckoutIFrame.tsx","../src/components/embed/fiat/FiatEmbeddedCheckout.tsx","../src/components/hosted/CrossmintPayButton.tsx","../src/hooks/useEnvironment.ts","../src/components/hosted/styles.ts","../src/hooks/useCrossmint.tsx","../src/providers/CrossmintAuthProvider.tsx","../src/hooks/useAuth.ts"],"sourcesContent":["export * from \"./components\";\nexport * from \"./hooks\";\nexport * from \"./providers\";\n\nexport { CrossmintEvents, useCrossmintEvents } from \"@crossmint/client-sdk-base\";\nexport { type EVMSmartWallet, Chain } from \"@crossmint/client-sdk-smart-wallet\";\nexport type { CrossmintEvent, CrossmintEventMap } from \"@crossmint/client-sdk-base\";\n","import { assertValidNFTCollectionViewProps, getNFTCollectionViewSrc } from \"@crossmint/client-sdk-base\";\nimport { NFTCollectionViewProps } from \"@crossmint/common-sdk-base\";\n\nimport { LIB_VERSION } from \"../consts/version\";\n\nexport function CrossmintNFTCollectionView(props: NFTCollectionViewProps) {\n assertValidNFTCollectionViewProps(props);\n\n const src = getNFTCollectionViewSrc(props, LIB_VERSION);\n\n return (\n <iframe\n src={src}\n width=\"100%\"\n height=\"100%\"\n style={{\n flexGrow: \"1\",\n border: \"none\",\n margin: \"0\",\n padding: \"0\",\n }}\n role=\"nft-collection-view\"\n />\n );\n}\n","export const LIB_VERSION = \"1.3.8\";\n","import { assertValidValidateNFTDetailProps, getNFTDetailSrc } from \"@crossmint/client-sdk-base\";\nimport { NFTDetailProps } from \"@crossmint/common-sdk-base\";\n\nimport { LIB_VERSION } from \"../consts/version\";\n\nexport function CrossmintNFTDetail(props: NFTDetailProps) {\n assertValidValidateNFTDetailProps(props);\n\n const src = getNFTDetailSrc(props, LIB_VERSION);\n\n return (\n <iframe\n src={src}\n width=\"100%\"\n height=\"100%\"\n style={{\n flexGrow: \"1\",\n border: \"none\",\n margin: \"0\",\n padding: \"0\",\n }}\n role=\"nft-details\"\n />\n );\n}\n","import {\n CrossmintEmbeddedCheckoutProps,\n isCryptoEmbeddedCheckoutProps,\n isFiatEmbeddedCheckoutProps,\n} from \"@crossmint/client-sdk-base\";\n\nimport { CrossmintCryptoEmbeddedCheckout } from \"./crypto/CryptoEmbeddedCheckout\";\nimport { CrossmintFiatEmbeddedCheckout } from \"./fiat/FiatEmbeddedCheckout\";\n\n// TODO: Rename to CrossmintEmbeddedCheckout on v2 major publish, prior announcement since its a breaking change\nexport function CrossmintPaymentElement(props: CrossmintEmbeddedCheckoutProps) {\n if (isFiatEmbeddedCheckoutProps(props)) {\n return <CrossmintFiatEmbeddedCheckout {...props} />;\n }\n if (isCryptoEmbeddedCheckoutProps(props)) {\n return <CrossmintCryptoEmbeddedCheckout {...props} />;\n }\n throw new Error(\"Unsupported: Fiat is the only supported payment method.\");\n}\n","import { CryptoEmbeddedCheckoutProps, isCryptoEmbeddedCheckoutPropsWithSigner } from \"@crossmint/client-sdk-base\";\n\nimport CryptoEmbeddedCheckoutIFrame from \"./CryptoEmbeddedCheckoutIFrame\";\n\nexport function CrossmintCryptoEmbeddedCheckout(props: CryptoEmbeddedCheckoutProps) {\n if (!isCryptoEmbeddedCheckoutPropsWithSigner(props)) {\n throw new Error(\"Invalid parameters: signer is required in versions < 2.0.0\");\n }\n\n return <CryptoEmbeddedCheckoutIFrame {...props} />;\n}\n","import isEqual from \"lodash.isequal\";\nimport { DependencyList, EffectCallback, useEffect, useRef } from \"react\";\n\nexport default function useDeepEffect(callback: EffectCallback, dependencies: DependencyList): void {\n const dependenciesRef = useRef(dependencies);\n\n useEffect(() => {\n const hasChanged = dependencies.some((dep, i) => !isEqual(dep, dependenciesRef.current[i]));\n\n if (hasChanged) {\n dependenciesRef.current = dependencies;\n return callback();\n }\n }, [dependencies]);\n}\n","import useDeepEffect from \"@/hooks/useDeepEffect\";\nimport bs58 from \"bs58\";\n\nimport {\n CryptoEmbeddedCheckoutPropsWithSigner,\n ETHEmbeddedCheckoutSigner,\n IncomingInternalEvent,\n IncomingInternalEvents,\n OutgoingInternalEvents,\n SOLEmbeddedCheckoutSigner,\n crossmintIFrameService,\n embeddedCheckoutPropsToUpdatableParamsPayload,\n} from \"@crossmint/client-sdk-base\";\nimport { EVMBlockchainIncludingTestnet } from \"@crossmint/common-sdk-base\";\n\nimport CrossmintEmbeddedCheckoutIFrame from \"../EmbeddedCheckoutIFrame\";\n\nexport default function CryptoEmbeddedCheckoutIFrame(props: CryptoEmbeddedCheckoutPropsWithSigner) {\n const { emitInternalEvent } = crossmintIFrameService(props);\n\n const { signer, paymentMethod } = props;\n\n function onInternalEvent(event: IncomingInternalEvent) {\n const { type, payload } = event;\n\n if (type === IncomingInternalEvents.CRYPTO_PAYMENT_INCOMING_TRANSACTION) {\n const { serializedTransaction } = payload;\n console.log(\"[Crossmint] Received incoming transaction\", serializedTransaction);\n handleIncomingTransaction(serializedTransaction);\n }\n\n if (type === IncomingInternalEvents.CRYPTO_CHAIN_SWITCH) {\n const { chain } = payload;\n console.log(\"[Crossmint] Received change of chain\", chain);\n\n const handleChainSwitch = (signer as ETHEmbeddedCheckoutSigner).handleChainSwitch;\n if (handleChainSwitch == null) {\n throw new Error(\"switchNetwork function should have been defined\");\n }\n handleChainSwitch(chain as EVMBlockchainIncludingTestnet);\n }\n }\n\n async function handleIncomingTransaction(serializedTransaction: string) {\n try {\n let txId: string;\n switch (paymentMethod) {\n case \"SOL\":\n txId = await handleSOLTransaction(signer, serializedTransaction);\n break;\n case \"ETH\":\n txId = await handleETHTransaction(signer, serializedTransaction);\n break;\n default:\n throw new Error(`Unsupported payment method ${paymentMethod}`);\n }\n\n console.log(\"[Crossmint] Signed and sent transaction\", txId);\n emitInternalEvent({\n type: OutgoingInternalEvents.CRYPTO_PAYMENT_USER_ACCEPTED,\n payload: {\n txId,\n },\n });\n } catch (e) {\n console.error(\"[Crossmint] Failed to sign and send transaction\", e);\n emitInternalEvent({\n type: OutgoingInternalEvents.CRYPTO_PAYMENT_USER_REJECTED,\n payload: {},\n });\n }\n }\n\n async function handleSOLTransaction(signer: SOLEmbeddedCheckoutSigner, serializedTransaction: string) {\n // @ts-ignore - Error becasue we dont use 'module' field in tsconfig, which is expected because we use tsup to compile\n const { Transaction } = await import(\"@solana/web3.js\");\n const transaction = Transaction.from(bs58.decode(serializedTransaction));\n console.log(\"[Crossmint] Deserialized SOL transaction\", transaction);\n\n return await signer.signAndSendTransaction(transaction);\n }\n\n async function handleETHTransaction(signer: ETHEmbeddedCheckoutSigner, serializedTransaction: string) {\n // @ts-ignore - Error becasue we dont use 'module' field in tsconfig, which is expected because we use tsup to compile\n const { parse: parseTransaction } = await import(\"@ethersproject/transactions\");\n const transaction = parseTransaction(serializedTransaction);\n console.log(\"[Crossmint] Deserialized ETH transaction\", transaction);\n\n return await signer.signAndSendTransaction(transaction);\n }\n\n useDeepEffect(() => {\n emitInternalEvent({\n type: \"params-update\",\n payload: embeddedCheckoutPropsToUpdatableParamsPayload(props),\n });\n }, [\n props.signer.address,\n props.recipient,\n props.mintConfig,\n props.locale,\n props.currency,\n props.whPassThroughArgs,\n ...(\"chain\" in props.signer ? [props.signer.chain] : []),\n ]);\n\n return <CrossmintEmbeddedCheckoutIFrame onInternalEvent={onInternalEvent} {...props} />;\n}\n","import { useEffect, useState } from \"react\";\n\nimport { IncomingInternalEvent, IncomingInternalEvents, crossmintIFrameService } from \"@crossmint/client-sdk-base\";\nimport { CrossmintEmbeddedCheckoutProps } from \"@crossmint/client-sdk-base\";\n\ntype CrossmintEmbeddedCheckoutIFrameProps = CrossmintEmbeddedCheckoutProps & {\n onInternalEvent?: (event: IncomingInternalEvent) => void;\n};\n\nexport default function CrossmintEmbeddedCheckoutIFrame({\n onInternalEvent,\n ...props\n}: CrossmintEmbeddedCheckoutIFrameProps) {\n const { getUrl, listenToEvents, listenToInternalEvents } = crossmintIFrameService(props);\n\n const [height, setHeight] = useState(0);\n const [url] = useState(getUrl(props));\n\n // Public events\n useEffect(() => {\n const clearListener = listenToEvents((event) => props.onEvent?.(event.data));\n\n return () => {\n clearListener();\n };\n }, []);\n\n // Internal events\n useEffect(() => {\n const clearListener = listenToInternalEvents((event) => {\n const { type, payload } = event.data;\n\n if (type === IncomingInternalEvents.UI_HEIGHT_CHANGED) {\n setHeight(payload.height);\n }\n\n onInternalEvent?.(event.data);\n });\n\n return () => {\n clearListener();\n };\n }, []);\n\n return (\n <iframe\n src={url}\n id=\"crossmint-embedded-checkout.iframe\"\n role=\"crossmint-embedded-checkout.iframe\"\n allow=\"payment *\"\n style={{\n boxShadow: \"none\",\n border: \"none\",\n padding: \"0px\",\n width: \"100%\",\n minWidth: \"100%\",\n overflow: \"hidden\",\n display: \"block\",\n userSelect: \"none\",\n transform: \"translate(0px)\",\n opacity: \"1\",\n transition: \"ease 0s, opacity 0.4s ease 0.1s\",\n height: `${height}px`,\n }}\n />\n );\n}\n","import useDeepEffect from \"@/hooks/useDeepEffect\";\n\nimport {\n FiatEmbeddedCheckoutProps,\n crossmintIFrameService,\n embeddedCheckoutPropsToUpdatableParamsPayload,\n} from \"@crossmint/client-sdk-base\";\n\nimport CrossmintEmbeddedCheckoutIFrame from \"../EmbeddedCheckoutIFrame\";\n\nexport default function FiatEmbeddedCheckoutIFrame(props: FiatEmbeddedCheckoutProps) {\n const { emitInternalEvent } = crossmintIFrameService(props);\n\n useDeepEffect(() => {\n emitInternalEvent({\n type: \"params-update\",\n payload: embeddedCheckoutPropsToUpdatableParamsPayload(props),\n });\n }, [props.recipient, props.mintConfig, props.locale, props.currency, props.whPassThroughArgs]);\n\n return <CrossmintEmbeddedCheckoutIFrame {...props} />;\n}\n","import FiatEmbeddedCheckoutIFrame from \"@/components/embed/fiat/FiatEmbeddedCheckoutIFrame\";\n\nimport { FiatEmbeddedCheckoutProps } from \"@crossmint/client-sdk-base\";\n\nexport function CrossmintFiatEmbeddedCheckout(props: FiatEmbeddedCheckoutProps) {\n return <FiatEmbeddedCheckoutIFrame {...props} />;\n}\n","import { CSSProperties, MouseEvent, useMemo } from \"react\";\nimport { useState } from \"react\";\n\nimport {\n CheckoutProps,\n CrossmintPayButtonProps,\n clientNames,\n crossmintModalService,\n crossmintPayButtonService,\n} from \"@crossmint/client-sdk-base\";\n\nimport { LIB_VERSION } from \"../../consts/version\";\nimport useEnvironment from \"../../hooks/useEnvironment\";\nimport { formatProps, useStyles } from \"./styles\";\n\nexport type CrossmintPayButtonReactProps = CrossmintPayButtonProps & {\n onClick?: (e: MouseEvent<HTMLButtonElement>) => void;\n style?: CSSProperties;\n};\n\nexport function CrossmintPayButton(buttonProps: CrossmintPayButtonReactProps) {\n const {\n className,\n disabled,\n onClick,\n style,\n tabIndex,\n theme = \"dark\",\n mintTo,\n emailTo,\n listingId,\n auctionId,\n showOverlay = true,\n mintConfig,\n whPassThroughArgs,\n environment,\n paymentMethod,\n preferredSigninMethod,\n dismissOverlayOnClick,\n prepay,\n locale = \"en-US\",\n currency = \"usd\",\n successCallbackURL = \"\",\n failureCallbackURL = \"\",\n loginEmail = \"\",\n projectId,\n getButtonText,\n checkoutProps = {\n experimental: false,\n display: \"same-tab\",\n paymentMethods: [\"fiat\", \"ETH\", \"SOL\"],\n } as CheckoutProps,\n ...props\n } = buttonProps;\n\n const collectionId = \"clientId\" in props ? props.clientId : props.collectionId;\n\n const [connecting, setConnecting] = useState(false);\n const { isServerSideRendering } = useEnvironment();\n\n const { connect } = crossmintModalService({\n clientId: collectionId,\n projectId,\n showOverlay,\n dismissOverlayOnClick,\n setConnecting,\n libVersion: LIB_VERSION,\n environment,\n clientName: clientNames.reactUi,\n locale,\n currency,\n successCallbackURL,\n failureCallbackURL,\n loginEmail,\n });\n\n const { getButtonText: getButtonTextInternal, handleClick } = crossmintPayButtonService({\n onClick,\n connecting,\n paymentMethod,\n locale,\n checkoutProps,\n });\n\n const _handleClick = (event: MouseEvent<HTMLButtonElement>) =>\n handleClick(event, () => {\n connect(\n mintConfig,\n mintTo,\n emailTo,\n listingId,\n whPassThroughArgs,\n paymentMethod,\n preferredSigninMethod,\n prepay,\n checkoutProps\n );\n });\n\n const classes = useStyles(formatProps(theme));\n\n const content = useMemo(() => {\n return (\n <span className={classes.crossmintParagraph} role=\"button-paragraph\">\n {getButtonText != null\n ? getButtonText(connecting, paymentMethod || \"fiat\")\n : getButtonTextInternal(connecting)}\n </span>\n );\n }, [connecting, getButtonText, paymentMethod]);\n\n return (\n <>\n {!isServerSideRendering && (\n <button\n className={`${classes.crossmintButton} ${className || \"\"}`}\n disabled={disabled}\n onClick={_handleClick}\n style={{ ...style }}\n tabIndex={tabIndex}\n >\n <img\n className={classes.crossmintImg}\n src=\"https://www.crossmint.io/assets/crossmint/logo.svg\"\n alt=\"Crossmint logo\"\n />\n {content}\n </button>\n )}\n </>\n );\n}\n","import { useEffect, useState } from \"react\";\n\nexport default function useEnvironment() {\n const [isServerSideRendering, setIsServerSideRendering] = useState(true);\n useEffect(() => {\n setIsServerSideRendering(false);\n }, []);\n\n return { isServerSideRendering };\n}\n","import { Styles, createUseStyles } from \"react-jss\";\n\nconst DARK_BG = \"#1e1e1e\";\n\nconst themeIsLight = (theme: string) => theme === \"light\";\n\nexport const formatProps = (theme: string): CustomStylingProps => ({\n buttonBgColor: themeIsLight(theme) ? \"white\" : DARK_BG,\n paragraphColor: themeIsLight(theme) ? \"black\" : \"white\",\n});\n\nexport type Classes<Name extends string | number | symbol = string> = Record<Name, string>;\ninterface CustomStylingProps {\n buttonBgColor?: string;\n paragraphColor?: string;\n}\n\nconst styles: Styles<\"crossmintButton\" | \"crossmintImg\" | \"crossmintParagraph\" | \"@global\", CustomStylingProps> = {\n \"@global\": {\n \"@import\":\n \"url('https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap')\",\n },\n crossmintButton: {\n display: \"flex\",\n \"flex-direction\": \"row\",\n \"align-items\": \"center\",\n padding: \"0.875rem 0.875rem\",\n \"font-weight\": \"900\",\n transition: \"opacity ease-in-out 0.25s\",\n \"border-radius\": \"0.5rem\",\n \"font-family\": `\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif`,\n outline: \"none\",\n border: \"none\",\n \"box-shadow\": \"0px 8px 15px rgba(0, 0, 0, 0.1)\",\n \"justify-content\": \"center\",\n background: ({ buttonBgColor }: CustomStylingProps) => buttonBgColor,\n\n \"&:hover:enabled\": {\n opacity: \"0.6\",\n cursor: \"pointer\",\n },\n },\n crossmintImg: {\n width: \"21px\",\n height: \"21px\",\n \"margin-right\": \"0.875rem\",\n },\n crossmintParagraph: {\n color: ({ paragraphColor }: CustomStylingProps) => paragraphColor,\n margin: \"0\",\n },\n};\n\nexport const useStyles: (\n data?:\n | CustomStylingProps & {\n theme?: any;\n }\n) => Classes<\"crossmintButton\" | \"crossmintImg\" | \"crossmintParagraph\" | \"@global\"> = createUseStyles(styles);\n","import { ReactNode, createContext, useCallback, useContext, useMemo, useRef, useState } from \"react\";\n\nimport { Crossmint, createCrossmint } from \"@crossmint/common-sdk-base\";\n\nexport interface CrossmintContext {\n crossmint: Crossmint;\n setJwt: (jwt: string | undefined) => void;\n}\n\nconst CrossmintContext = createContext<CrossmintContext | null>(null);\n\nexport function CrossmintProvider({\n children,\n ...createCrossmintParams\n}: { children: ReactNode } & Parameters<typeof createCrossmint>[0]) {\n const [version, setVersion] = useState(0);\n\n const crossmintRef = useRef<Crossmint>(\n new Proxy<Crossmint>(createCrossmint(createCrossmintParams), {\n set(target, prop, value) {\n if (prop === \"jwt\" && target.jwt !== value) {\n setVersion((v) => v + 1);\n }\n return Reflect.set(target, prop, value);\n },\n })\n );\n\n const setJwt = useCallback((jwt: string | undefined) => {\n if (jwt !== crossmintRef.current.jwt) {\n crossmintRef.current.jwt = jwt;\n }\n }, []);\n\n const value = useMemo(\n () => ({\n get crossmint() {\n return crossmintRef.current;\n },\n setJwt,\n }),\n [setJwt, version]\n );\n\n return <CrossmintContext.Provider value={value}>{children}</CrossmintContext.Provider>;\n}\n\nexport function useCrossmint() {\n const context = useContext(CrossmintContext);\n if (context == null) {\n throw new Error(\"useCrossmint must be used within a CrossmintProvider\");\n }\n return context;\n}\n","import { createContext, useEffect, useMemo, useState } from \"react\";\n\nimport { AuthProvider, type AuthProviderParams, useAuth as useAuthCore } from \"@crossmint/client-sdk-auth-core/client\";\nimport { EVMSmartWallet, SmartWalletSDK } from \"@crossmint/client-sdk-smart-wallet\";\n\ntype AuthWalletProviderParams = AuthProviderParams & {\n embeddedWallets: {\n type: \"evm-smart-wallet\";\n defaultChain: \"polygon-amoy\" | \"base-sepolia\";\n createOnLogin: \"all-users\" | \"off\";\n };\n};\n\nexport const WalletContext = createContext<{ wallet: EVMSmartWallet | null }>({\n wallet: null,\n});\n\nexport function CrossmintAuthProvider(props: AuthWalletProviderParams) {\n return (\n <AuthProvider {...props}>\n <AuthWalletProvider {...props}></AuthWalletProvider>\n </AuthProvider>\n );\n}\n\nfunction AuthWalletProvider(props: AuthWalletProviderParams) {\n const { jwt } = useAuthCore();\n\n const [wallet, setWallet] = useState<EVMSmartWallet | null>(null);\n\n const smartWalletSDK = useMemo(() => SmartWalletSDK.init({ clientApiKey: props.apiKey }), [props.apiKey]);\n\n const getOrCreateWallet = async (jwt: string) => {\n try {\n const wallet = await smartWalletSDK.getOrCreateWallet({ jwt }, props.embeddedWallets.defaultChain);\n setWallet(wallet);\n } catch (e: any) {\n console.error(\"There was an error creating a wallet \", e);\n throw e;\n }\n };\n\n useEffect(() => {\n if (props.embeddedWallets.createOnLogin && jwt) {\n console.log(\"Getting or Creating wallet\");\n getOrCreateWallet(jwt);\n }\n\n if (wallet && !jwt) {\n // implies a logout has occurred, clear wallet\n console.log(\"Clearing wallet\");\n setWallet(null);\n }\n }, [jwt, props.embeddedWallets.createOnLogin]);\n\n return <WalletContext.Provider value={{ wallet }}>{props.children}</WalletContext.Provider>;\n}\n","import { WalletContext } from \"@/providers/CrossmintAuthProvider\";\nimport { useContext } from \"react\";\n\nimport { useAuth as useAuthCore } from \"@crossmint/client-sdk-auth-core/client\";\n\nexport function useAuth() {\n const walletContext = useContext(WalletContext);\n\n if (!walletContext) {\n throw new Error(\"useAuth must be used within a CrossmintAuthProvider\");\n }\n\n const authContext = useAuthCore();\n return { ...authContext, ...walletContext };\n}\n"],"mappings":"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","names":["src_exports","__export","CrossmintAuthProvider","CrossmintNFTCollectionView","CrossmintNFTDetail","CrossmintPayButton","CrossmintPaymentElement","CrossmintProvider","WalletContext","useAuth","useCrossmint","__toCommonJS","import_client_sdk_base","LIB_VERSION","import_jsx_runtime","CrossmintNFTCollectionView","props","src","LIB_VERSION","import_client_sdk_base","import_jsx_runtime","CrossmintNFTDetail","props","src","LIB_VERSION","import_client_sdk_base","import_client_sdk_base","import_lodash","import_react","useDeepEffect","callback","dependencies","dependenciesRef","dep","i","isEqual","import_bs58","import_client_sdk_base","import_react","import_client_sdk_base","import_jsx_runtime","CrossmintEmbeddedCheckoutIFrame","_a","_b","onInternalEvent","props","__objRest","getUrl","listenToEvents","listenToInternalEvents","height","setHeight","url","clearListener","event","type","payload","import_jsx_runtime","CryptoEmbeddedCheckoutIFrame","props","emitInternalEvent","signer","paymentMethod","onInternalEvent","event","type","payload","serializedTransaction","handleIncomingTransaction","chain","handleChainSwitch","__async","txId","handleSOLTransaction","handleETHTransaction","e","Transaction","transaction","bs58","parseTransaction","useDeepEffect","CrossmintEmbeddedCheckoutIFrame","__spreadValues","import_jsx_runtime","CrossmintCryptoEmbeddedCheckout","props","CryptoEmbeddedCheckoutIFrame","__spreadValues","import_client_sdk_base","import_jsx_runtime","FiatEmbeddedCheckoutIFrame","props","emitInternalEvent","useDeepEffect","CrossmintEmbeddedCheckoutIFrame","__spreadValues","import_jsx_runtime","CrossmintFiatEmbeddedCheckout","props","FiatEmbeddedCheckoutIFrame","__spreadValues","import_jsx_runtime","CrossmintPaymentElement","props","CrossmintFiatEmbeddedCheckout","__spreadValues","CrossmintCryptoEmbeddedCheckout","import_react","import_client_sdk_base","import_react","useEnvironment","isServerSideRendering","setIsServerSideRendering","import_react_jss","DARK_BG","themeIsLight","theme","formatProps","styles","buttonBgColor","paragraphColor","useStyles","import_jsx_runtime","CrossmintPayButton","buttonProps","_a","className","disabled","onClick","style","tabIndex","theme","mintTo","emailTo","listingId","auctionId","showOverlay","mintConfig","whPassThroughArgs","environment","paymentMethod","preferredSigninMethod","dismissOverlayOnClick","prepay","locale","currency","successCallbackURL","failureCallbackURL","loginEmail","projectId","getButtonText","checkoutProps","props","__objRest","collectionId","connecting","setConnecting","isServerSideRendering","useEnvironment","connect","LIB_VERSION","getButtonTextInternal","handleClick","_handleClick","event","classes","useStyles","formatProps","content","__spreadValues","import_react","import_common_sdk_base","import_jsx_runtime","CrossmintContext","CrossmintProvider","_a","_b","children","createCrossmintParams","__objRest","version","setVersion","crossmintRef","target","prop","value","v","setJwt","jwt","useCrossmint","context","import_react","import_client","import_client_sdk_smart_wallet","import_jsx_runtime","WalletContext","CrossmintAuthProvider","props","__spreadProps","__spreadValues","AuthWalletProvider","jwt","useAuthCore","wallet","setWallet","smartWalletSDK","getOrCreateWallet","__async","e","import_react","import_client","useAuth","walletContext","WalletContext","authContext","useAuthCore","__spreadValues","import_client_sdk_base","import_client_sdk_smart_wallet"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/components/CrossmintNFTCollectionView.tsx","../src/consts/version.ts","../src/components/CrossmintNFTDetail.tsx","../src/components/embed/index.tsx","../src/components/embed/crypto/CryptoEmbeddedCheckout.tsx","../src/components/embed/crypto/CryptoEmbeddedCheckoutIFrame.tsx","../src/hooks/useDeepEffect.ts","../src/components/embed/EmbeddedCheckoutIFrame.tsx","../src/components/embed/fiat/FiatEmbeddedCheckoutIFrame.tsx","../src/components/embed/fiat/FiatEmbeddedCheckout.tsx","../src/components/hosted/CrossmintPayButton.tsx","../src/hooks/useEnvironment.ts","../src/components/hosted/styles.ts","../src/hooks/useCrossmint.tsx","../src/providers/CrossmintWalletProvider.tsx","../src/hooks/useWallet.ts","../src/hooks/index.ts","../src/providers/CrossmintAuthProvider.tsx"],"sourcesContent":["export * from \"./components\";\nexport * from \"./hooks\";\nexport * from \"./providers\";\n\nexport { CrossmintEvents, useCrossmintEvents } from \"@crossmint/client-sdk-base\";\nexport { type EVMSmartWallet, Chain } from \"@crossmint/client-sdk-smart-wallet\";\nexport type { CrossmintEvent, CrossmintEventMap } from \"@crossmint/client-sdk-base\";\n","import { assertValidNFTCollectionViewProps, getNFTCollectionViewSrc } from \"@crossmint/client-sdk-base\";\nimport { NFTCollectionViewProps } from \"@crossmint/common-sdk-base\";\n\nimport { LIB_VERSION } from \"../consts/version\";\n\nexport function CrossmintNFTCollectionView(props: NFTCollectionViewProps) {\n assertValidNFTCollectionViewProps(props);\n\n const src = getNFTCollectionViewSrc(props, LIB_VERSION);\n\n return (\n <iframe\n src={src}\n width=\"100%\"\n height=\"100%\"\n style={{\n flexGrow: \"1\",\n border: \"none\",\n margin: \"0\",\n padding: \"0\",\n }}\n role=\"nft-collection-view\"\n />\n );\n}\n","export const LIB_VERSION = \"1.3.9\";\n","import { assertValidValidateNFTDetailProps, getNFTDetailSrc } from \"@crossmint/client-sdk-base\";\nimport { NFTDetailProps } from \"@crossmint/common-sdk-base\";\n\nimport { LIB_VERSION } from \"../consts/version\";\n\nexport function CrossmintNFTDetail(props: NFTDetailProps) {\n assertValidValidateNFTDetailProps(props);\n\n const src = getNFTDetailSrc(props, LIB_VERSION);\n\n return (\n <iframe\n src={src}\n width=\"100%\"\n height=\"100%\"\n style={{\n flexGrow: \"1\",\n border: \"none\",\n margin: \"0\",\n padding: \"0\",\n }}\n role=\"nft-details\"\n />\n );\n}\n","import {\n CrossmintEmbeddedCheckoutProps,\n isCryptoEmbeddedCheckoutProps,\n isFiatEmbeddedCheckoutProps,\n} from \"@crossmint/client-sdk-base\";\n\nimport { CrossmintCryptoEmbeddedCheckout } from \"./crypto/CryptoEmbeddedCheckout\";\nimport { CrossmintFiatEmbeddedCheckout } from \"./fiat/FiatEmbeddedCheckout\";\n\n// TODO: Rename to CrossmintEmbeddedCheckout on v2 major publish, prior announcement since its a breaking change\nexport function CrossmintPaymentElement(props: CrossmintEmbeddedCheckoutProps) {\n if (isFiatEmbeddedCheckoutProps(props)) {\n return <CrossmintFiatEmbeddedCheckout {...props} />;\n }\n if (isCryptoEmbeddedCheckoutProps(props)) {\n return <CrossmintCryptoEmbeddedCheckout {...props} />;\n }\n throw new Error(\"Unsupported: Fiat is the only supported payment method.\");\n}\n","import { CryptoEmbeddedCheckoutProps, isCryptoEmbeddedCheckoutPropsWithSigner } from \"@crossmint/client-sdk-base\";\n\nimport CryptoEmbeddedCheckoutIFrame from \"./CryptoEmbeddedCheckoutIFrame\";\n\nexport function CrossmintCryptoEmbeddedCheckout(props: CryptoEmbeddedCheckoutProps) {\n if (!isCryptoEmbeddedCheckoutPropsWithSigner(props)) {\n throw new Error(\"Invalid parameters: signer is required in versions < 2.0.0\");\n }\n\n return <CryptoEmbeddedCheckoutIFrame {...props} />;\n}\n","import bs58 from \"bs58\";\n\nimport {\n CryptoEmbeddedCheckoutPropsWithSigner,\n ETHEmbeddedCheckoutSigner,\n IncomingInternalEvent,\n IncomingInternalEvents,\n OutgoingInternalEvents,\n SOLEmbeddedCheckoutSigner,\n crossmintIFrameService,\n embeddedCheckoutPropsToUpdatableParamsPayload,\n} from \"@crossmint/client-sdk-base\";\nimport { EVMBlockchainIncludingTestnet } from \"@crossmint/common-sdk-base\";\n\nimport useDeepEffect from \"../../../hooks/useDeepEffect\";\nimport CrossmintEmbeddedCheckoutIFrame from \"../EmbeddedCheckoutIFrame\";\n\nexport default function CryptoEmbeddedCheckoutIFrame(props: CryptoEmbeddedCheckoutPropsWithSigner) {\n const { emitInternalEvent } = crossmintIFrameService(props);\n\n const { signer, paymentMethod } = props;\n\n function onInternalEvent(event: IncomingInternalEvent) {\n const { type, payload } = event;\n\n if (type === IncomingInternalEvents.CRYPTO_PAYMENT_INCOMING_TRANSACTION) {\n const { serializedTransaction } = payload;\n console.log(\"[Crossmint] Received incoming transaction\", serializedTransaction);\n handleIncomingTransaction(serializedTransaction);\n }\n\n if (type === IncomingInternalEvents.CRYPTO_CHAIN_SWITCH) {\n const { chain } = payload;\n console.log(\"[Crossmint] Received change of chain\", chain);\n\n const handleChainSwitch = (signer as ETHEmbeddedCheckoutSigner).handleChainSwitch;\n if (handleChainSwitch == null) {\n throw new Error(\"switchNetwork function should have been defined\");\n }\n handleChainSwitch(chain as EVMBlockchainIncludingTestnet);\n }\n }\n\n async function handleIncomingTransaction(serializedTransaction: string) {\n try {\n let txId: string;\n switch (paymentMethod) {\n case \"SOL\":\n txId = await handleSOLTransaction(signer, serializedTransaction);\n break;\n case \"ETH\":\n txId = await handleETHTransaction(signer, serializedTransaction);\n break;\n default:\n throw new Error(`Unsupported payment method ${paymentMethod}`);\n }\n\n console.log(\"[Crossmint] Signed and sent transaction\", txId);\n emitInternalEvent({\n type: OutgoingInternalEvents.CRYPTO_PAYMENT_USER_ACCEPTED,\n payload: {\n txId,\n },\n });\n } catch (e) {\n console.error(\"[Crossmint] Failed to sign and send transaction\", e);\n emitInternalEvent({\n type: OutgoingInternalEvents.CRYPTO_PAYMENT_USER_REJECTED,\n payload: {},\n });\n }\n }\n\n async function handleSOLTransaction(signer: SOLEmbeddedCheckoutSigner, serializedTransaction: string) {\n // @ts-ignore - Error becasue we dont use 'module' field in tsconfig, which is expected because we use tsup to compile\n const { Transaction } = await import(\"@solana/web3.js\");\n const transaction = Transaction.from(bs58.decode(serializedTransaction));\n console.log(\"[Crossmint] Deserialized SOL transaction\", transaction);\n\n return await signer.signAndSendTransaction(transaction);\n }\n\n async function handleETHTransaction(signer: ETHEmbeddedCheckoutSigner, serializedTransaction: string) {\n // @ts-ignore - Error becasue we dont use 'module' field in tsconfig, which is expected because we use tsup to compile\n const { parse: parseTransaction } = await import(\"@ethersproject/transactions\");\n const transaction = parseTransaction(serializedTransaction);\n console.log(\"[Crossmint] Deserialized ETH transaction\", transaction);\n\n return await signer.signAndSendTransaction(transaction);\n }\n\n useDeepEffect(() => {\n emitInternalEvent({\n type: \"params-update\",\n payload: embeddedCheckoutPropsToUpdatableParamsPayload(props),\n });\n }, [\n props.signer.address,\n props.recipient,\n props.mintConfig,\n props.locale,\n props.currency,\n props.whPassThroughArgs,\n ...(\"chain\" in props.signer ? [props.signer.chain] : []),\n ]);\n\n return <CrossmintEmbeddedCheckoutIFrame onInternalEvent={onInternalEvent} {...props} />;\n}\n","import isEqual from \"lodash.isequal\";\nimport { DependencyList, EffectCallback, useEffect, useRef } from \"react\";\n\nexport default function useDeepEffect(callback: EffectCallback, dependencies: DependencyList): void {\n const dependenciesRef = useRef(dependencies);\n\n useEffect(() => {\n const hasChanged = dependencies.some((dep, i) => !isEqual(dep, dependenciesRef.current[i]));\n\n if (hasChanged) {\n dependenciesRef.current = dependencies;\n return callback();\n }\n }, [dependencies]);\n}\n","import { useEffect, useState } from \"react\";\n\nimport {\n CrossmintEmbeddedCheckoutProps,\n IncomingInternalEvent,\n IncomingInternalEvents,\n crossmintIFrameService,\n} from \"@crossmint/client-sdk-base\";\n\ntype CrossmintEmbeddedCheckoutIFrameProps = CrossmintEmbeddedCheckoutProps & {\n onInternalEvent?: (event: IncomingInternalEvent) => void;\n};\n\nexport default function CrossmintEmbeddedCheckoutIFrame({\n onInternalEvent,\n ...props\n}: CrossmintEmbeddedCheckoutIFrameProps) {\n const { getUrl, listenToEvents, listenToInternalEvents } = crossmintIFrameService(props);\n\n const [height, setHeight] = useState(0);\n const [url] = useState(getUrl(props));\n\n // Public events\n useEffect(() => {\n const clearListener = listenToEvents((event) => props.onEvent?.(event.data));\n\n return () => {\n clearListener();\n };\n }, []);\n\n // Internal events\n useEffect(() => {\n const clearListener = listenToInternalEvents((event) => {\n const { type, payload } = event.data;\n\n if (type === IncomingInternalEvents.UI_HEIGHT_CHANGED) {\n setHeight(payload.height);\n }\n\n onInternalEvent?.(event.data);\n });\n\n return () => {\n clearListener();\n };\n }, []);\n\n return (\n <iframe\n src={url}\n id=\"crossmint-embedded-checkout.iframe\"\n role=\"crossmint-embedded-checkout.iframe\"\n allow=\"payment *\"\n style={{\n boxShadow: \"none\",\n border: \"none\",\n padding: \"0px\",\n width: \"100%\",\n minWidth: \"100%\",\n overflow: \"hidden\",\n display: \"block\",\n userSelect: \"none\",\n transform: \"translate(0px)\",\n opacity: \"1\",\n transition: \"ease 0s, opacity 0.4s ease 0.1s\",\n height: `${height}px`,\n }}\n />\n );\n}\n","import {\n FiatEmbeddedCheckoutProps,\n crossmintIFrameService,\n embeddedCheckoutPropsToUpdatableParamsPayload,\n} from \"@crossmint/client-sdk-base\";\n\nimport useDeepEffect from \"../../../hooks/useDeepEffect\";\nimport CrossmintEmbeddedCheckoutIFrame from \"../EmbeddedCheckoutIFrame\";\n\nexport default function FiatEmbeddedCheckoutIFrame(props: FiatEmbeddedCheckoutProps) {\n const { emitInternalEvent } = crossmintIFrameService(props);\n\n useDeepEffect(() => {\n emitInternalEvent({\n type: \"params-update\",\n payload: embeddedCheckoutPropsToUpdatableParamsPayload(props),\n });\n }, [props.recipient, props.mintConfig, props.locale, props.currency, props.whPassThroughArgs]);\n\n return <CrossmintEmbeddedCheckoutIFrame {...props} />;\n}\n","import { FiatEmbeddedCheckoutProps } from \"@crossmint/client-sdk-base\";\n\nimport FiatEmbeddedCheckoutIFrame from \"../../../components/embed/fiat/FiatEmbeddedCheckoutIFrame\";\n\nexport function CrossmintFiatEmbeddedCheckout(props: FiatEmbeddedCheckoutProps) {\n return <FiatEmbeddedCheckoutIFrame {...props} />;\n}\n","import { CSSProperties, MouseEvent, useMemo } from \"react\";\nimport { useState } from \"react\";\n\nimport {\n CheckoutProps,\n CrossmintPayButtonProps,\n clientNames,\n crossmintModalService,\n crossmintPayButtonService,\n} from \"@crossmint/client-sdk-base\";\n\nimport { LIB_VERSION } from \"../../consts/version\";\nimport useEnvironment from \"../../hooks/useEnvironment\";\nimport { formatProps, useStyles } from \"./styles\";\n\nexport type CrossmintPayButtonReactProps = CrossmintPayButtonProps & {\n onClick?: (e: MouseEvent<HTMLButtonElement>) => void;\n style?: CSSProperties;\n};\n\nexport function CrossmintPayButton(buttonProps: CrossmintPayButtonReactProps) {\n const {\n className,\n disabled,\n onClick,\n style,\n tabIndex,\n theme = \"dark\",\n mintTo,\n emailTo,\n listingId,\n auctionId,\n showOverlay = true,\n mintConfig,\n whPassThroughArgs,\n environment,\n paymentMethod,\n preferredSigninMethod,\n dismissOverlayOnClick,\n prepay,\n locale = \"en-US\",\n currency = \"usd\",\n successCallbackURL = \"\",\n failureCallbackURL = \"\",\n loginEmail = \"\",\n projectId,\n getButtonText,\n checkoutProps = {\n experimental: false,\n display: \"same-tab\",\n paymentMethods: [\"fiat\", \"ETH\", \"SOL\"],\n } as CheckoutProps,\n ...props\n } = buttonProps;\n\n const collectionId = \"clientId\" in props ? props.clientId : props.collectionId;\n\n const [connecting, setConnecting] = useState(false);\n const { isServerSideRendering } = useEnvironment();\n\n const { connect } = crossmintModalService({\n clientId: collectionId,\n projectId,\n showOverlay,\n dismissOverlayOnClick,\n setConnecting,\n libVersion: LIB_VERSION,\n environment,\n clientName: clientNames.reactUi,\n locale,\n currency,\n successCallbackURL,\n failureCallbackURL,\n loginEmail,\n });\n\n const { getButtonText: getButtonTextInternal, handleClick } = crossmintPayButtonService({\n onClick,\n connecting,\n paymentMethod,\n locale,\n checkoutProps,\n });\n\n const _handleClick = (event: MouseEvent<HTMLButtonElement>) =>\n handleClick(event, () => {\n connect(\n mintConfig,\n mintTo,\n emailTo,\n listingId,\n whPassThroughArgs,\n paymentMethod,\n preferredSigninMethod,\n prepay,\n checkoutProps\n );\n });\n\n const classes = useStyles(formatProps(theme));\n\n const content = useMemo(() => {\n return (\n <span className={classes.crossmintParagraph} role=\"button-paragraph\">\n {getButtonText != null\n ? getButtonText(connecting, paymentMethod || \"fiat\")\n : getButtonTextInternal(connecting)}\n </span>\n );\n }, [connecting, getButtonText, paymentMethod]);\n\n return (\n <>\n {!isServerSideRendering && (\n <button\n className={`${classes.crossmintButton} ${className || \"\"}`}\n disabled={disabled}\n onClick={_handleClick}\n style={{ ...style }}\n tabIndex={tabIndex}\n >\n <img\n className={classes.crossmintImg}\n src=\"https://www.crossmint.io/assets/crossmint/logo.svg\"\n alt=\"Crossmint logo\"\n />\n {content}\n </button>\n )}\n </>\n );\n}\n","import { useEffect, useState } from \"react\";\n\nexport default function useEnvironment() {\n const [isServerSideRendering, setIsServerSideRendering] = useState(true);\n useEffect(() => {\n setIsServerSideRendering(false);\n }, []);\n\n return { isServerSideRendering };\n}\n","import { Styles, createUseStyles } from \"react-jss\";\n\nconst DARK_BG = \"#1e1e1e\";\n\nconst themeIsLight = (theme: string) => theme === \"light\";\n\nexport const formatProps = (theme: string): CustomStylingProps => ({\n buttonBgColor: themeIsLight(theme) ? \"white\" : DARK_BG,\n paragraphColor: themeIsLight(theme) ? \"black\" : \"white\",\n});\n\nexport type Classes<Name extends string | number | symbol = string> = Record<Name, string>;\ninterface CustomStylingProps {\n buttonBgColor?: string;\n paragraphColor?: string;\n}\n\nconst styles: Styles<\"crossmintButton\" | \"crossmintImg\" | \"crossmintParagraph\" | \"@global\", CustomStylingProps> = {\n \"@global\": {\n \"@import\":\n \"url('https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap')\",\n },\n crossmintButton: {\n display: \"flex\",\n \"flex-direction\": \"row\",\n \"align-items\": \"center\",\n padding: \"0.875rem 0.875rem\",\n \"font-weight\": \"900\",\n transition: \"opacity ease-in-out 0.25s\",\n \"border-radius\": \"0.5rem\",\n \"font-family\": `\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif`,\n outline: \"none\",\n border: \"none\",\n \"box-shadow\": \"0px 8px 15px rgba(0, 0, 0, 0.1)\",\n \"justify-content\": \"center\",\n background: ({ buttonBgColor }: CustomStylingProps) => buttonBgColor,\n\n \"&:hover:enabled\": {\n opacity: \"0.6\",\n cursor: \"pointer\",\n },\n },\n crossmintImg: {\n width: \"21px\",\n height: \"21px\",\n \"margin-right\": \"0.875rem\",\n },\n crossmintParagraph: {\n color: ({ paragraphColor }: CustomStylingProps) => paragraphColor,\n margin: \"0\",\n },\n};\n\nexport const useStyles: (\n data?:\n | CustomStylingProps & {\n theme?: any;\n }\n) => Classes<\"crossmintButton\" | \"crossmintImg\" | \"crossmintParagraph\" | \"@global\"> = createUseStyles(styles);\n","import { ReactNode, createContext, useCallback, useContext, useMemo, useRef, useState } from \"react\";\n\nimport { getCachedJwt } from \"@crossmint/client-sdk-auth-core/client\";\nimport { Crossmint, createCrossmint } from \"@crossmint/common-sdk-base\";\n\nexport interface CrossmintContext {\n crossmint: Crossmint;\n setJwt: (jwt: string | undefined) => void;\n}\n\nconst CrossmintContext = createContext<CrossmintContext | null>(null);\n\nexport function CrossmintProvider({\n children,\n ...createCrossmintParams\n}: { children: ReactNode } & Parameters<typeof createCrossmint>[0]) {\n const [version, setVersion] = useState(0);\n\n const crossmintRef = useRef<Crossmint>(\n new Proxy<Crossmint>(\n createCrossmint({ ...createCrossmintParams, jwt: createCrossmintParams.jwt ?? getCachedJwt() }),\n {\n set(target, prop, value) {\n if (prop === \"jwt\" && target.jwt !== value) {\n setVersion((v) => v + 1);\n }\n return Reflect.set(target, prop, value);\n },\n }\n )\n );\n\n const setJwt = useCallback((jwt: string | undefined) => {\n if (jwt !== crossmintRef.current.jwt) {\n crossmintRef.current.jwt = jwt;\n }\n }, []);\n\n const value = useMemo(\n () => ({\n get crossmint() {\n return crossmintRef.current;\n },\n setJwt,\n }),\n [setJwt, version]\n );\n\n return <CrossmintContext.Provider value={value}>{children}</CrossmintContext.Provider>;\n}\n\nexport function useCrossmint(missingContextMessage?: string) {\n const context = useContext(CrossmintContext);\n if (context == null) {\n throw new Error(missingContextMessage ?? \"useCrossmint must be used within a CrossmintProvider\");\n }\n return context;\n}\n","import { useCrossmint } from \"@/hooks\";\nimport { ReactNode, createContext, useEffect, useMemo, useState } from \"react\";\n\nimport { EVMSmartWallet, SmartWalletError, SmartWalletSDK } from \"@crossmint/client-sdk-smart-wallet\";\n\nexport type CrossmintWalletConfig = {\n type: \"evm-smart-wallet\";\n defaultChain: \"polygon-amoy\" | \"base-sepolia\" | \"optimism-sepolia\" | \"arbitrum-sepolia\";\n createOnLogin: \"all-users\" | \"off\";\n};\n\ntype WalletStatus = \"not-loaded\" | \"in-progress\" | \"loaded\" | \"loading-error\";\n\ntype ValidWalletState =\n | { status: \"not-loaded\" | \"in-progress\" }\n | { status: \"loaded\"; wallet: EVMSmartWallet }\n | { status: \"loading-error\"; error: SmartWalletError };\n\nfunction deriveErrorState(error: unknown): { status: \"loading-error\"; error: SmartWalletError } {\n if (error instanceof SmartWalletError) {\n return { status: \"loading-error\", error };\n }\n\n const message = error instanceof Error ? error.message : String(error);\n const stack = error instanceof Error ? error.stack : undefined;\n return { status: \"loading-error\", error: new SmartWalletError(`Unknown Wallet Error: ${message}`, stack) };\n}\n\nfunction shouldGetOrCreateWallet(status: WalletStatus, jwt: string | undefined): jwt is string {\n return jwt != null && !(status === \"in-progress\" || status === \"loaded\");\n}\n\ntype WalletContext = {\n status: WalletStatus;\n wallet?: EVMSmartWallet;\n error?: SmartWalletError;\n getOrCreateWallet: () => Promise<void>;\n};\n\nexport const WalletContext = createContext<WalletContext>({\n status: \"not-loaded\",\n getOrCreateWallet: async () => {},\n});\n\nexport function CrossmintWalletProvider({ children, config }: { config: CrossmintWalletConfig; children: ReactNode }) {\n const { crossmint } = useCrossmint(\"CrossmintWalletProvider must be used within CrossmintProvider\");\n const [state, setState] = useState<ValidWalletState>({ status: \"not-loaded\" });\n const smartWalletSDK = useMemo(() => SmartWalletSDK.init({ clientApiKey: crossmint.apiKey }), [crossmint.apiKey]);\n\n const getOrCreateWallet = async () => {\n if (!shouldGetOrCreateWallet(state.status, crossmint.jwt)) {\n return;\n }\n\n try {\n setState({ status: \"in-progress\" });\n const wallet = await smartWalletSDK.getOrCreateWallet({ jwt: crossmint.jwt }, config.defaultChain);\n setState({ status: \"loaded\", wallet });\n } catch (error: unknown) {\n console.error(\"There was an error creating a wallet \", error);\n setState(deriveErrorState(error));\n }\n };\n\n useEffect(() => {\n if (config.createOnLogin === \"all-users\" && shouldGetOrCreateWallet(state.status, crossmint.jwt)) {\n console.log(\"Getting or Creating wallet\");\n getOrCreateWallet();\n return;\n }\n\n if (state.status === \"loaded\" && crossmint.jwt == null) {\n console.log(\"Clearing wallet\");\n setState({ status: \"not-loaded\" });\n return;\n }\n }, [crossmint.jwt, config.createOnLogin, state.status]);\n\n return <WalletContext.Provider value={{ ...state, getOrCreateWallet }}>{children}</WalletContext.Provider>;\n}\n","import { WalletContext } from \"@/providers/CrossmintWalletProvider\";\nimport { useContext } from \"react\";\n\nexport function useWallet() {\n const walletContext = useContext(WalletContext);\n\n if (!walletContext) {\n throw new Error(\"useWallet must be used within CrossmintAuthProvider or CrossmintWalletProvider\");\n }\n\n return walletContext;\n}\n","export * from \"./useCrossmint\";\nexport * from \"./useWallet\";\nexport { useAuth } from \"@crossmint/client-sdk-auth-core/client\";\n","import { useCrossmint } from \"@/hooks\";\nimport { ReactNode } from \"react\";\n\nimport { AuthProvider as AuthCoreProvider } from \"@crossmint/client-sdk-auth-core/client\";\n\nimport { CrossmintWalletConfig, CrossmintWalletProvider } from \"./CrossmintWalletProvider\";\n\nexport function CrossmintAuthProvider({\n embeddedWallets,\n children,\n}: {\n embeddedWallets: CrossmintWalletConfig;\n children: ReactNode;\n}) {\n const { crossmint, setJwt } = useCrossmint(\"CrossmintAuthProvider must be used within CrossmintProvider\");\n\n return (\n <AuthCoreProvider setJwtToken={setJwt} crossmint={crossmint}>\n <CrossmintWalletProvider config={embeddedWallets}>{children}</CrossmintWalletProvider>\n </AuthCoreProvider>\n );\n}\n"],"mappings":"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","names":["src_exports","__export","CrossmintAuthProvider","CrossmintNFTCollectionView","CrossmintNFTDetail","CrossmintPayButton","CrossmintPaymentElement","CrossmintProvider","CrossmintWalletProvider","WalletContext","useCrossmint","useWallet","__toCommonJS","import_client_sdk_base","LIB_VERSION","import_jsx_runtime","CrossmintNFTCollectionView","props","src","LIB_VERSION","import_client_sdk_base","import_jsx_runtime","CrossmintNFTDetail","props","src","LIB_VERSION","import_client_sdk_base","import_client_sdk_base","import_bs58","import_client_sdk_base","import_lodash","import_react","useDeepEffect","callback","dependencies","dependenciesRef","dep","i","isEqual","import_react","import_client_sdk_base","import_jsx_runtime","CrossmintEmbeddedCheckoutIFrame","_a","_b","onInternalEvent","props","__objRest","getUrl","listenToEvents","listenToInternalEvents","height","setHeight","url","clearListener","event","type","payload","import_jsx_runtime","CryptoEmbeddedCheckoutIFrame","props","emitInternalEvent","signer","paymentMethod","onInternalEvent","event","type","payload","serializedTransaction","handleIncomingTransaction","chain","handleChainSwitch","__async","txId","handleSOLTransaction","handleETHTransaction","e","Transaction","transaction","bs58","parseTransaction","useDeepEffect","CrossmintEmbeddedCheckoutIFrame","__spreadValues","import_jsx_runtime","CrossmintCryptoEmbeddedCheckout","props","CryptoEmbeddedCheckoutIFrame","__spreadValues","import_client_sdk_base","import_jsx_runtime","FiatEmbeddedCheckoutIFrame","props","emitInternalEvent","useDeepEffect","CrossmintEmbeddedCheckoutIFrame","__spreadValues","import_jsx_runtime","CrossmintFiatEmbeddedCheckout","props","FiatEmbeddedCheckoutIFrame","__spreadValues","import_jsx_runtime","CrossmintPaymentElement","props","CrossmintFiatEmbeddedCheckout","__spreadValues","CrossmintCryptoEmbeddedCheckout","import_react","import_client_sdk_base","import_react","useEnvironment","isServerSideRendering","setIsServerSideRendering","import_react_jss","DARK_BG","themeIsLight","theme","formatProps","styles","buttonBgColor","paragraphColor","useStyles","import_jsx_runtime","CrossmintPayButton","buttonProps","_a","className","disabled","onClick","style","tabIndex","theme","mintTo","emailTo","listingId","auctionId","showOverlay","mintConfig","whPassThroughArgs","environment","paymentMethod","preferredSigninMethod","dismissOverlayOnClick","prepay","locale","currency","successCallbackURL","failureCallbackURL","loginEmail","projectId","getButtonText","checkoutProps","props","__objRest","collectionId","connecting","setConnecting","isServerSideRendering","useEnvironment","connect","LIB_VERSION","getButtonTextInternal","handleClick","_handleClick","event","classes","useStyles","formatProps","content","__spreadValues","import_react","import_client","import_common_sdk_base","import_jsx_runtime","CrossmintContext","CrossmintProvider","_a","_b","children","createCrossmintParams","__objRest","version","setVersion","crossmintRef","__spreadProps","__spreadValues","target","prop","value","v","setJwt","jwt","useCrossmint","missingContextMessage","context","import_react","import_client_sdk_smart_wallet","import_jsx_runtime","deriveErrorState","error","message","stack","shouldGetOrCreateWallet","status","jwt","WalletContext","__async","CrossmintWalletProvider","children","config","crossmint","useCrossmint","state","setState","smartWalletSDK","getOrCreateWallet","wallet","__spreadProps","__spreadValues","import_react","useWallet","walletContext","WalletContext","import_client","import_client","import_jsx_runtime","CrossmintAuthProvider","embeddedWallets","children","crossmint","setJwt","useCrossmint","AuthCoreProvider","CrossmintWalletProvider","import_client_sdk_base","import_client_sdk_smart_wallet"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -5,9 +5,9 @@ export { CrossmintEvent, CrossmintEventMap, CrossmintEvents, useCrossmintEvents
|
|
|
5
5
|
import * as react from 'react';
|
|
6
6
|
import { MouseEvent, CSSProperties, ReactNode } from 'react';
|
|
7
7
|
import * as _crossmint_client_sdk_smart_wallet from '@crossmint/client-sdk-smart-wallet';
|
|
8
|
-
import { EVMSmartWallet } from '@crossmint/client-sdk-smart-wallet';
|
|
8
|
+
import { EVMSmartWallet, SmartWalletError } from '@crossmint/client-sdk-smart-wallet';
|
|
9
9
|
export { Chain, EVMSmartWallet } from '@crossmint/client-sdk-smart-wallet';
|
|
10
|
-
|
|
10
|
+
export { useAuth } from '@crossmint/client-sdk-auth-core/client';
|
|
11
11
|
|
|
12
12
|
declare function CrossmintNFTCollectionView(props: NFTCollectionViewProps): react_jsx_runtime.JSX.Element;
|
|
13
13
|
|
|
@@ -28,25 +28,36 @@ interface CrossmintContext {
|
|
|
28
28
|
declare function CrossmintProvider({ children, ...createCrossmintParams }: {
|
|
29
29
|
children: ReactNode;
|
|
30
30
|
} & Parameters<typeof createCrossmint>[0]): react_jsx_runtime.JSX.Element;
|
|
31
|
-
declare function useCrossmint(): CrossmintContext;
|
|
31
|
+
declare function useCrossmint(missingContextMessage?: string): CrossmintContext;
|
|
32
32
|
|
|
33
|
-
declare function
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
declare function useWallet(): {
|
|
34
|
+
status: "not-loaded" | "in-progress" | "loaded" | "loading-error";
|
|
35
|
+
wallet?: _crossmint_client_sdk_smart_wallet.EVMSmartWallet;
|
|
36
|
+
error?: _crossmint_client_sdk_smart_wallet.SmartWalletError;
|
|
37
|
+
getOrCreateWallet: () => Promise<void>;
|
|
38
38
|
};
|
|
39
39
|
|
|
40
|
-
type
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
createOnLogin: "all-users" | "off";
|
|
45
|
-
};
|
|
40
|
+
type CrossmintWalletConfig = {
|
|
41
|
+
type: "evm-smart-wallet";
|
|
42
|
+
defaultChain: "polygon-amoy" | "base-sepolia" | "optimism-sepolia" | "arbitrum-sepolia";
|
|
43
|
+
createOnLogin: "all-users" | "off";
|
|
46
44
|
};
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
45
|
+
type WalletStatus = "not-loaded" | "in-progress" | "loaded" | "loading-error";
|
|
46
|
+
type WalletContext = {
|
|
47
|
+
status: WalletStatus;
|
|
48
|
+
wallet?: EVMSmartWallet;
|
|
49
|
+
error?: SmartWalletError;
|
|
50
|
+
getOrCreateWallet: () => Promise<void>;
|
|
51
|
+
};
|
|
52
|
+
declare const WalletContext: react.Context<WalletContext>;
|
|
53
|
+
declare function CrossmintWalletProvider({ children, config }: {
|
|
54
|
+
config: CrossmintWalletConfig;
|
|
55
|
+
children: ReactNode;
|
|
56
|
+
}): react_jsx_runtime.JSX.Element;
|
|
57
|
+
|
|
58
|
+
declare function CrossmintAuthProvider({ embeddedWallets, children, }: {
|
|
59
|
+
embeddedWallets: CrossmintWalletConfig;
|
|
60
|
+
children: ReactNode;
|
|
61
|
+
}): react_jsx_runtime.JSX.Element;
|
|
51
62
|
|
|
52
|
-
export { CrossmintAuthProvider, type CrossmintContext, CrossmintNFTCollectionView, CrossmintNFTDetail, CrossmintPayButton, type CrossmintPayButtonReactProps, CrossmintPaymentElement, CrossmintProvider,
|
|
63
|
+
export { CrossmintAuthProvider, type CrossmintContext, CrossmintNFTCollectionView, CrossmintNFTDetail, CrossmintPayButton, type CrossmintPayButtonReactProps, CrossmintPaymentElement, CrossmintProvider, type CrossmintWalletConfig, CrossmintWalletProvider, WalletContext, useCrossmint, useWallet };
|
package/dist/index.d.ts
CHANGED
|
@@ -5,9 +5,9 @@ export { CrossmintEvent, CrossmintEventMap, CrossmintEvents, useCrossmintEvents
|
|
|
5
5
|
import * as react from 'react';
|
|
6
6
|
import { MouseEvent, CSSProperties, ReactNode } from 'react';
|
|
7
7
|
import * as _crossmint_client_sdk_smart_wallet from '@crossmint/client-sdk-smart-wallet';
|
|
8
|
-
import { EVMSmartWallet } from '@crossmint/client-sdk-smart-wallet';
|
|
8
|
+
import { EVMSmartWallet, SmartWalletError } from '@crossmint/client-sdk-smart-wallet';
|
|
9
9
|
export { Chain, EVMSmartWallet } from '@crossmint/client-sdk-smart-wallet';
|
|
10
|
-
|
|
10
|
+
export { useAuth } from '@crossmint/client-sdk-auth-core/client';
|
|
11
11
|
|
|
12
12
|
declare function CrossmintNFTCollectionView(props: NFTCollectionViewProps): react_jsx_runtime.JSX.Element;
|
|
13
13
|
|
|
@@ -28,25 +28,36 @@ interface CrossmintContext {
|
|
|
28
28
|
declare function CrossmintProvider({ children, ...createCrossmintParams }: {
|
|
29
29
|
children: ReactNode;
|
|
30
30
|
} & Parameters<typeof createCrossmint>[0]): react_jsx_runtime.JSX.Element;
|
|
31
|
-
declare function useCrossmint(): CrossmintContext;
|
|
31
|
+
declare function useCrossmint(missingContextMessage?: string): CrossmintContext;
|
|
32
32
|
|
|
33
|
-
declare function
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
33
|
+
declare function useWallet(): {
|
|
34
|
+
status: "not-loaded" | "in-progress" | "loaded" | "loading-error";
|
|
35
|
+
wallet?: _crossmint_client_sdk_smart_wallet.EVMSmartWallet;
|
|
36
|
+
error?: _crossmint_client_sdk_smart_wallet.SmartWalletError;
|
|
37
|
+
getOrCreateWallet: () => Promise<void>;
|
|
38
38
|
};
|
|
39
39
|
|
|
40
|
-
type
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
createOnLogin: "all-users" | "off";
|
|
45
|
-
};
|
|
40
|
+
type CrossmintWalletConfig = {
|
|
41
|
+
type: "evm-smart-wallet";
|
|
42
|
+
defaultChain: "polygon-amoy" | "base-sepolia" | "optimism-sepolia" | "arbitrum-sepolia";
|
|
43
|
+
createOnLogin: "all-users" | "off";
|
|
46
44
|
};
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
45
|
+
type WalletStatus = "not-loaded" | "in-progress" | "loaded" | "loading-error";
|
|
46
|
+
type WalletContext = {
|
|
47
|
+
status: WalletStatus;
|
|
48
|
+
wallet?: EVMSmartWallet;
|
|
49
|
+
error?: SmartWalletError;
|
|
50
|
+
getOrCreateWallet: () => Promise<void>;
|
|
51
|
+
};
|
|
52
|
+
declare const WalletContext: react.Context<WalletContext>;
|
|
53
|
+
declare function CrossmintWalletProvider({ children, config }: {
|
|
54
|
+
config: CrossmintWalletConfig;
|
|
55
|
+
children: ReactNode;
|
|
56
|
+
}): react_jsx_runtime.JSX.Element;
|
|
57
|
+
|
|
58
|
+
declare function CrossmintAuthProvider({ embeddedWallets, children, }: {
|
|
59
|
+
embeddedWallets: CrossmintWalletConfig;
|
|
60
|
+
children: ReactNode;
|
|
61
|
+
}): react_jsx_runtime.JSX.Element;
|
|
51
62
|
|
|
52
|
-
export { CrossmintAuthProvider, type CrossmintContext, CrossmintNFTCollectionView, CrossmintNFTDetail, CrossmintPayButton, type CrossmintPayButtonReactProps, CrossmintPaymentElement, CrossmintProvider,
|
|
63
|
+
export { CrossmintAuthProvider, type CrossmintContext, CrossmintNFTCollectionView, CrossmintNFTDetail, CrossmintPayButton, type CrossmintPayButtonReactProps, CrossmintPaymentElement, CrossmintProvider, type CrossmintWalletConfig, CrossmintWalletProvider, WalletContext, useCrossmint, useWallet };
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var ht=Object.defineProperty,ft=Object.defineProperties;var pt=Object.getOwnPropertyDescriptors;var b=Object.getOwnPropertySymbols;var M=Object.prototype.hasOwnProperty,L=Object.prototype.propertyIsEnumerable;var B=(t,e,o)=>e in t?ht(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,a=(t,e)=>{for(var o in e||(e={}))M.call(e,o)&&B(t,o,e[o]);if(b)for(var o of b(e))L.call(e,o)&&B(t,o,e[o]);return t},V=(t,e)=>ft(t,pt(e));var h=(t,e)=>{var o={};for(var r in t)M.call(t,r)&&e.indexOf(r)<0&&(o[r]=t[r]);if(t!=null&&b)for(var r of b(t))e.indexOf(r)<0&&L.call(t,r)&&(o[r]=t[r]);return o};var f=(t,e,o)=>new Promise((r,c)=>{var d=s=>{try{m(o.next(s))}catch(n){c(n)}},u=s=>{try{m(o.throw(s))}catch(n){c(n)}},m=s=>s.done?r(s.value):Promise.resolve(s.value).then(d,u);m((o=o.apply(t,e)).next())});import{assertValidNFTCollectionViewProps as gt,getNFTCollectionViewSrc as yt}from"@crossmint/client-sdk-base";var p="1.3.8";import{jsx as Et}from"react/jsx-runtime";function be(t){gt(t);let e=yt(t,p);return Et("iframe",{src:e,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-collection-view"})}import{assertValidValidateNFTDetailProps as Pt,getNFTDetailSrc as bt}from"@crossmint/client-sdk-base";import{jsx as wt}from"react/jsx-runtime";function ke(t){Pt(t);let e=bt(t,p);return wt("iframe",{src:e,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-details"})}import{isCryptoEmbeddedCheckoutProps as _t,isFiatEmbeddedCheckoutProps as Dt}from"@crossmint/client-sdk-base";import{isCryptoEmbeddedCheckoutPropsWithSigner as Ot}from"@crossmint/client-sdk-base";import St from"lodash.isequal";import{useEffect as It,useRef as vt}from"react";function g(t,e){let o=vt(e);It(()=>{if(e.some((c,d)=>!St(c,o.current[d])))return o.current=e,t()},[e])}import Nt from"bs58";import{IncomingInternalEvents as H,OutgoingInternalEvents as U,crossmintIFrameService as Ft,embeddedCheckoutPropsToUpdatableParamsPayload as At}from"@crossmint/client-sdk-base";import{useEffect as _,useState as D}from"react";import{IncomingInternalEvents as kt,crossmintIFrameService as xt}from"@crossmint/client-sdk-base";import{jsx as Tt}from"react/jsx-runtime";function y(o){var r=o,{onInternalEvent:t}=r,e=h(r,["onInternalEvent"]);let{getUrl:c,listenToEvents:d,listenToInternalEvents:u}=xt(e),[m,s]=D(0),[n]=D(c(e));return _(()=>{let l=d(i=>{var C;return(C=e.onEvent)==null?void 0:C.call(e,i.data)});return()=>{l()}},[]),_(()=>{let l=u(i=>{let{type:C,payload:w}=i.data;C===kt.UI_HEIGHT_CHANGED&&s(w.height),t==null||t(i.data)});return()=>{l()}},[]),Tt("iframe",{src:n,id:"crossmint-embedded-checkout.iframe",role:"crossmint-embedded-checkout.iframe",allow:"payment *",style:{boxShadow:"none",border:"none",padding:"0px",width:"100%",minWidth:"100%",overflow:"hidden",display:"block",userSelect:"none",transform:"translate(0px)",opacity:"1",transition:"ease 0s, opacity 0.4s ease 0.1s",height:`${m}px`}})}import{jsx as Rt}from"react/jsx-runtime";function k(t){let{emitInternalEvent:e}=Ft(t),{signer:o,paymentMethod:r}=t;function c(s){let{type:n,payload:l}=s;if(n===H.CRYPTO_PAYMENT_INCOMING_TRANSACTION){let{serializedTransaction:i}=l;console.log("[Crossmint] Received incoming transaction",i),d(i)}if(n===H.CRYPTO_CHAIN_SWITCH){let{chain:i}=l;console.log("[Crossmint] Received change of chain",i);let C=o.handleChainSwitch;if(C==null)throw new Error("switchNetwork function should have been defined");C(i)}}function d(s){return f(this,null,function*(){try{let n;switch(r){case"SOL":n=yield u(o,s);break;case"ETH":n=yield m(o,s);break;default:throw new Error(`Unsupported payment method ${r}`)}console.log("[Crossmint] Signed and sent transaction",n),e({type:U.CRYPTO_PAYMENT_USER_ACCEPTED,payload:{txId:n}})}catch(n){console.error("[Crossmint] Failed to sign and send transaction",n),e({type:U.CRYPTO_PAYMENT_USER_REJECTED,payload:{}})}})}function u(s,n){return f(this,null,function*(){let{Transaction:l}=yield import("@solana/web3.js"),i=l.from(Nt.decode(n));return console.log("[Crossmint] Deserialized SOL transaction",i),yield s.signAndSendTransaction(i)})}function m(s,n){return f(this,null,function*(){let{parse:l}=yield import("@ethersproject/transactions"),i=l(n);return console.log("[Crossmint] Deserialized ETH transaction",i),yield s.signAndSendTransaction(i)})}return g(()=>{e({type:"params-update",payload:At(t)})},[t.signer.address,t.recipient,t.mintConfig,t.locale,t.currency,t.whPassThroughArgs,..."chain"in t.signer?[t.signer.chain]:[]]),Rt(y,a({onInternalEvent:c},t))}import{jsx as Wt}from"react/jsx-runtime";function G(t){if(!Ot(t))throw new Error("Invalid parameters: signer is required in versions < 2.0.0");return Wt(k,a({},t))}import{crossmintIFrameService as Bt,embeddedCheckoutPropsToUpdatableParamsPayload as Mt}from"@crossmint/client-sdk-base";import{jsx as Lt}from"react/jsx-runtime";function x(t){let{emitInternalEvent:e}=Bt(t);return g(()=>{e({type:"params-update",payload:Mt(t)})},[t.recipient,t.mintConfig,t.locale,t.currency,t.whPassThroughArgs]),Lt(y,a({},t))}import{jsx as Vt}from"react/jsx-runtime";function Y(t){return Vt(x,a({},t))}import{jsx as K}from"react/jsx-runtime";function Eo(t){if(Dt(t))return K(Y,a({},t));if(_t(t))return K(G,a({},t));throw new Error("Unsupported: Fiat is the only supported payment method.")}import{useMemo as $t}from"react";import{useState as Jt}from"react";import{clientNames as qt,crossmintModalService as zt,crossmintPayButtonService as Qt}from"@crossmint/client-sdk-base";import{useEffect as Ht,useState as Ut}from"react";function T(){let[t,e]=Ut(!0);return Ht(()=>{e(!1)},[]),{isServerSideRendering:t}}import{createUseStyles as Gt}from"react-jss";var Yt="#1e1e1e",$=t=>t==="light",J=t=>({buttonBgColor:$(t)?"white":Yt,paragraphColor:$(t)?"black":"white"}),Kt={"@global":{"@import":"url('https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap')"},crossmintButton:{display:"flex","flex-direction":"row","align-items":"center",padding:"0.875rem 0.875rem","font-weight":"900",transition:"opacity ease-in-out 0.25s","border-radius":"0.5rem","font-family":'"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif',outline:"none",border:"none","box-shadow":"0px 8px 15px rgba(0, 0, 0, 0.1)","justify-content":"center",background:({buttonBgColor:t})=>t,"&:hover:enabled":{opacity:"0.6",cursor:"pointer"}},crossmintImg:{width:"21px",height:"21px","margin-right":"0.875rem"},crossmintParagraph:{color:({paragraphColor:t})=>t,margin:"0"}},q=Gt(Kt);import{Fragment as Zt,jsx as N,jsxs as Xt}from"react/jsx-runtime";function Vo(t){let W=t,{className:e,disabled:o,onClick:r,style:c,tabIndex:d,theme:u="dark",mintTo:m,emailTo:s,listingId:n,auctionId:l,showOverlay:i=!0,mintConfig:C,whPassThroughArgs:w,environment:Q,paymentMethod:E,preferredSigninMethod:X,dismissOverlayOnClick:Z,prepay:j,locale:R="en-US",currency:tt="usd",successCallbackURL:et="",failureCallbackURL:ot="",loginEmail:nt="",projectId:rt,getButtonText:S,checkoutProps:O={experimental:!1,display:"same-tab",paymentMethods:["fiat","ETH","SOL"]}}=W,I=h(W,["className","disabled","onClick","style","tabIndex","theme","mintTo","emailTo","listingId","auctionId","showOverlay","mintConfig","whPassThroughArgs","environment","paymentMethod","preferredSigninMethod","dismissOverlayOnClick","prepay","locale","currency","successCallbackURL","failureCallbackURL","loginEmail","projectId","getButtonText","checkoutProps"]),st="clientId"in I?I.clientId:I.collectionId,[P,it]=Jt(!1),{isServerSideRendering:at}=T(),{connect:mt}=zt({clientId:st,projectId:rt,showOverlay:i,dismissOverlayOnClick:Z,setConnecting:it,libVersion:p,environment:Q,clientName:qt.reactUi,locale:R,currency:tt,successCallbackURL:et,failureCallbackURL:ot,loginEmail:nt}),{getButtonText:ct,handleClick:lt}=Qt({onClick:r,connecting:P,paymentMethod:E,locale:R,checkoutProps:O}),dt=Ct=>lt(Ct,()=>{mt(C,m,s,n,w,E,X,j,O)}),v=q(J(u)),ut=$t(()=>N("span",{className:v.crossmintParagraph,role:"button-paragraph",children:S!=null?S(P,E||"fiat"):ct(P)}),[P,S,E]);return N(Zt,{children:!at&&Xt("button",{className:`${v.crossmintButton} ${e||""}`,disabled:o,onClick:dt,style:a({},c),tabIndex:d,children:[N("img",{className:v.crossmintImg,src:"https://www.crossmint.io/assets/crossmint/logo.svg",alt:"Crossmint logo"}),ut]})})}import{createContext as jt,useCallback as te,useContext as ee,useMemo as oe,useRef as ne,useState as re}from"react";import{createCrossmint as se}from"@crossmint/common-sdk-base";import{jsx as ie}from"react/jsx-runtime";var z=jt(null);function $o(o){var r=o,{children:t}=r,e=h(r,["children"]);let[c,d]=re(0),u=ne(new Proxy(se(e),{set(n,l,i){return l==="jwt"&&n.jwt!==i&&d(C=>C+1),Reflect.set(n,l,i)}})),m=te(n=>{n!==u.current.jwt&&(u.current.jwt=n)},[]),s=oe(()=>({get crossmint(){return u.current},setJwt:m}),[m,c]);return ie(z.Provider,{value:s,children:t})}function Jo(){let t=ee(z);if(t==null)throw new Error("useCrossmint must be used within a CrossmintProvider");return t}import{createContext as ae,useEffect as me,useMemo as ce,useState as le}from"react";import{AuthProvider as de,useAuth as ue}from"@crossmint/client-sdk-auth-core/client";import{SmartWalletSDK as Ce}from"@crossmint/client-sdk-smart-wallet";import{jsx as F}from"react/jsx-runtime";var A=ae({wallet:null});function en(t){return F(de,V(a({},t),{children:F(he,a({},t))}))}function he(t){let{jwt:e}=ue(),[o,r]=le(null),c=ce(()=>Ce.init({clientApiKey:t.apiKey}),[t.apiKey]),d=u=>f(this,null,function*(){try{let m=yield c.getOrCreateWallet({jwt:u},t.embeddedWallets.defaultChain);r(m)}catch(m){throw console.error("There was an error creating a wallet ",m),m}});return me(()=>{t.embeddedWallets.createOnLogin&&e&&(console.log("Getting or Creating wallet"),d(e)),o&&!e&&(console.log("Clearing wallet"),r(null))},[e,t.embeddedWallets.createOnLogin]),F(A.Provider,{value:{wallet:o},children:t.children})}import{useContext as fe}from"react";import{useAuth as pe}from"@crossmint/client-sdk-auth-core/client";function cn(){let t=fe(A);if(!t)throw new Error("useAuth must be used within a CrossmintAuthProvider");let e=pe();return a(a({},e),t)}import{CrossmintEvents as gn,useCrossmintEvents as yn}from"@crossmint/client-sdk-base";import{Chain as Pn}from"@crossmint/client-sdk-smart-wallet";export{Pn as Chain,en as CrossmintAuthProvider,gn as CrossmintEvents,be as CrossmintNFTCollectionView,ke as CrossmintNFTDetail,Vo as CrossmintPayButton,Eo as CrossmintPaymentElement,$o as CrossmintProvider,A as WalletContext,cn as useAuth,Jo as useCrossmint,yn as useCrossmintEvents};
|
|
1
|
+
var Et=Object.defineProperty,yt=Object.defineProperties;var wt=Object.getOwnPropertyDescriptors;var b=Object.getOwnPropertySymbols;var V=Object.prototype.hasOwnProperty,M=Object.prototype.propertyIsEnumerable;var L=(t,e,o)=>e in t?Et(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,c=(t,e)=>{for(var o in e||(e={}))V.call(e,o)&&L(t,o,e[o]);if(b)for(var o of b(e))M.call(e,o)&&L(t,o,e[o]);return t},S=(t,e)=>yt(t,wt(e));var f=(t,e)=>{var o={};for(var r in t)V.call(t,r)&&e.indexOf(r)<0&&(o[r]=t[r]);if(t!=null&&b)for(var r of b(t))e.indexOf(r)<0&&M.call(t,r)&&(o[r]=t[r]);return o};var p=(t,e,o)=>new Promise((r,a)=>{var u=s=>{try{l(o.next(s))}catch(n){a(n)}},d=s=>{try{l(o.throw(s))}catch(n){a(n)}},l=s=>s.done?r(s.value):Promise.resolve(s.value).then(u,d);l((o=o.apply(t,e)).next())});import{assertValidNFTCollectionViewProps as Pt,getNFTCollectionViewSrc as bt}from"@crossmint/client-sdk-base";var h="1.3.9";import{jsx as St}from"react/jsx-runtime";function ke(t){Pt(t);let e=bt(t,h);return St("iframe",{src:e,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-collection-view"})}import{assertValidValidateNFTDetailProps as vt,getNFTDetailSrc as kt}from"@crossmint/client-sdk-base";import{jsx as It}from"react/jsx-runtime";function Ne(t){vt(t);let e=kt(t,h);return It("iframe",{src:e,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-details"})}import{isCryptoEmbeddedCheckoutProps as Gt,isFiatEmbeddedCheckoutProps as Yt}from"@crossmint/client-sdk-base";import{isCryptoEmbeddedCheckoutPropsWithSigner as Vt}from"@crossmint/client-sdk-base";import Ot from"bs58";import{IncomingInternalEvents as H,OutgoingInternalEvents as U,crossmintIFrameService as Bt,embeddedCheckoutPropsToUpdatableParamsPayload as At}from"@crossmint/client-sdk-base";import xt from"lodash.isequal";import{useEffect as Tt,useRef as Wt}from"react";function E(t,e){let o=Wt(e);Tt(()=>{if(e.some((a,u)=>!xt(a,o.current[u])))return o.current=e,t()},[e])}import{useEffect as _,useState as D}from"react";import{IncomingInternalEvents as Nt,crossmintIFrameService as Rt}from"@crossmint/client-sdk-base";import{jsx as Ft}from"react/jsx-runtime";function y(o){var r=o,{onInternalEvent:t}=r,e=f(r,["onInternalEvent"]);let{getUrl:a,listenToEvents:u,listenToInternalEvents:d}=Rt(e),[l,s]=D(0),[n]=D(a(e));return _(()=>{let m=u(i=>{var C;return(C=e.onEvent)==null?void 0:C.call(e,i.data)});return()=>{m()}},[]),_(()=>{let m=d(i=>{let{type:C,payload:g}=i.data;C===Nt.UI_HEIGHT_CHANGED&&s(g.height),t==null||t(i.data)});return()=>{m()}},[]),Ft("iframe",{src:n,id:"crossmint-embedded-checkout.iframe",role:"crossmint-embedded-checkout.iframe",allow:"payment *",style:{boxShadow:"none",border:"none",padding:"0px",width:"100%",minWidth:"100%",overflow:"hidden",display:"block",userSelect:"none",transform:"translate(0px)",opacity:"1",transition:"ease 0s, opacity 0.4s ease 0.1s",height:`${l}px`}})}import{jsx as Lt}from"react/jsx-runtime";function T(t){let{emitInternalEvent:e}=Bt(t),{signer:o,paymentMethod:r}=t;function a(s){let{type:n,payload:m}=s;if(n===H.CRYPTO_PAYMENT_INCOMING_TRANSACTION){let{serializedTransaction:i}=m;console.log("[Crossmint] Received incoming transaction",i),u(i)}if(n===H.CRYPTO_CHAIN_SWITCH){let{chain:i}=m;console.log("[Crossmint] Received change of chain",i);let C=o.handleChainSwitch;if(C==null)throw new Error("switchNetwork function should have been defined");C(i)}}function u(s){return p(this,null,function*(){try{let n;switch(r){case"SOL":n=yield d(o,s);break;case"ETH":n=yield l(o,s);break;default:throw new Error(`Unsupported payment method ${r}`)}console.log("[Crossmint] Signed and sent transaction",n),e({type:U.CRYPTO_PAYMENT_USER_ACCEPTED,payload:{txId:n}})}catch(n){console.error("[Crossmint] Failed to sign and send transaction",n),e({type:U.CRYPTO_PAYMENT_USER_REJECTED,payload:{}})}})}function d(s,n){return p(this,null,function*(){let{Transaction:m}=yield import("@solana/web3.js"),i=m.from(Ot.decode(n));return console.log("[Crossmint] Deserialized SOL transaction",i),yield s.signAndSendTransaction(i)})}function l(s,n){return p(this,null,function*(){let{parse:m}=yield import("@ethersproject/transactions"),i=m(n);return console.log("[Crossmint] Deserialized ETH transaction",i),yield s.signAndSendTransaction(i)})}return E(()=>{e({type:"params-update",payload:At(t)})},[t.signer.address,t.recipient,t.mintConfig,t.locale,t.currency,t.whPassThroughArgs,..."chain"in t.signer?[t.signer.chain]:[]]),Lt(y,c({onInternalEvent:a},t))}import{jsx as Mt}from"react/jsx-runtime";function G(t){if(!Vt(t))throw new Error("Invalid parameters: signer is required in versions < 2.0.0");return Mt(T,c({},t))}import{crossmintIFrameService as _t,embeddedCheckoutPropsToUpdatableParamsPayload as Dt}from"@crossmint/client-sdk-base";import{jsx as Ht}from"react/jsx-runtime";function W(t){let{emitInternalEvent:e}=_t(t);return E(()=>{e({type:"params-update",payload:Dt(t)})},[t.recipient,t.mintConfig,t.locale,t.currency,t.whPassThroughArgs]),Ht(y,c({},t))}import{jsx as Ut}from"react/jsx-runtime";function Y(t){return Ut(W,c({},t))}import{jsx as J}from"react/jsx-runtime";function vo(t){if(Yt(t))return J(Y,c({},t));if(Gt(t))return J(G,c({},t));throw new Error("Unsupported: Fiat is the only supported payment method.")}import{useMemo as zt}from"react";import{useState as Qt}from"react";import{clientNames as Xt,crossmintModalService as Zt,crossmintPayButtonService as te}from"@crossmint/client-sdk-base";import{useEffect as Jt,useState as Kt}from"react";function N(){let[t,e]=Kt(!0);return Jt(()=>{e(!1)},[]),{isServerSideRendering:t}}import{createUseStyles as $t}from"react-jss";var jt="#1e1e1e",K=t=>t==="light",$=t=>({buttonBgColor:K(t)?"white":jt,paragraphColor:K(t)?"black":"white"}),qt={"@global":{"@import":"url('https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap')"},crossmintButton:{display:"flex","flex-direction":"row","align-items":"center",padding:"0.875rem 0.875rem","font-weight":"900",transition:"opacity ease-in-out 0.25s","border-radius":"0.5rem","font-family":'"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif',outline:"none",border:"none","box-shadow":"0px 8px 15px rgba(0, 0, 0, 0.1)","justify-content":"center",background:({buttonBgColor:t})=>t,"&:hover:enabled":{opacity:"0.6",cursor:"pointer"}},crossmintImg:{width:"21px",height:"21px","margin-right":"0.875rem"},crossmintParagraph:{color:({paragraphColor:t})=>t,margin:"0"}},j=$t(qt);import{Fragment as oe,jsx as R,jsxs as ee}from"react/jsx-runtime";function Go(t){let A=t,{className:e,disabled:o,onClick:r,style:a,tabIndex:u,theme:d="dark",mintTo:l,emailTo:s,listingId:n,auctionId:m,showOverlay:i=!0,mintConfig:C,whPassThroughArgs:g,environment:tt,paymentMethod:w,preferredSigninMethod:et,dismissOverlayOnClick:ot,prepay:rt,locale:O="en-US",currency:nt="usd",successCallbackURL:st="",failureCallbackURL:it="",loginEmail:at="",projectId:lt,getButtonText:k,checkoutProps:B={experimental:!1,display:"same-tab",paymentMethods:["fiat","ETH","SOL"]}}=A,I=f(A,["className","disabled","onClick","style","tabIndex","theme","mintTo","emailTo","listingId","auctionId","showOverlay","mintConfig","whPassThroughArgs","environment","paymentMethod","preferredSigninMethod","dismissOverlayOnClick","prepay","locale","currency","successCallbackURL","failureCallbackURL","loginEmail","projectId","getButtonText","checkoutProps"]),mt="clientId"in I?I.clientId:I.collectionId,[P,ct]=Qt(!1),{isServerSideRendering:dt}=N(),{connect:ut}=Zt({clientId:mt,projectId:lt,showOverlay:i,dismissOverlayOnClick:ot,setConnecting:ct,libVersion:h,environment:tt,clientName:Xt.reactUi,locale:O,currency:nt,successCallbackURL:st,failureCallbackURL:it,loginEmail:at}),{getButtonText:Ct,handleClick:pt}=te({onClick:r,connecting:P,paymentMethod:w,locale:O,checkoutProps:B}),ft=gt=>pt(gt,()=>{ut(C,l,s,n,g,w,et,rt,B)}),x=j($(d)),ht=zt(()=>R("span",{className:x.crossmintParagraph,role:"button-paragraph",children:k!=null?k(P,w||"fiat"):Ct(P)}),[P,k,w]);return R(oe,{children:!dt&&ee("button",{className:`${x.crossmintButton} ${e||""}`,disabled:o,onClick:ft,style:c({},a),tabIndex:u,children:[R("img",{className:x.crossmintImg,src:"https://www.crossmint.io/assets/crossmint/logo.svg",alt:"Crossmint logo"}),ht]})})}import{createContext as re,useCallback as ne,useContext as se,useMemo as ie,useRef as ae,useState as le}from"react";import{getCachedJwt as me}from"@crossmint/client-sdk-auth-core/client";import{createCrossmint as ce}from"@crossmint/common-sdk-base";import{jsx as de}from"react/jsx-runtime";var q=re(null);function Xo(o){var r=o,{children:t}=r,e=f(r,["children"]);var n;let[a,u]=le(0),d=ae(new Proxy(ce(S(c({},e),{jwt:(n=e.jwt)!=null?n:me()})),{set(m,i,C){return i==="jwt"&&m.jwt!==C&&u(g=>g+1),Reflect.set(m,i,C)}})),l=ne(m=>{m!==d.current.jwt&&(d.current.jwt=m)},[]),s=ie(()=>({get crossmint(){return d.current},setJwt:l}),[l,a]);return de(q.Provider,{value:s,children:t})}function v(t){let e=se(q);if(e==null)throw new Error(t!=null?t:"useCrossmint must be used within a CrossmintProvider");return e}import{createContext as ue,useEffect as Ce,useMemo as pe,useState as fe}from"react";import{SmartWalletError as z,SmartWalletSDK as he}from"@crossmint/client-sdk-smart-wallet";import{jsx as Ee}from"react/jsx-runtime";function ge(t){if(t instanceof z)return{status:"loading-error",error:t};let e=t instanceof Error?t.message:String(t),o=t instanceof Error?t.stack:void 0;return{status:"loading-error",error:new z(`Unknown Wallet Error: ${e}`,o)}}function Q(t,e){return e!=null&&!(t==="in-progress"||t==="loaded")}var F=ue({status:"not-loaded",getOrCreateWallet:()=>p(void 0,null,function*(){})});function X({children:t,config:e}){let{crossmint:o}=v("CrossmintWalletProvider must be used within CrossmintProvider"),[r,a]=fe({status:"not-loaded"}),u=pe(()=>he.init({clientApiKey:o.apiKey}),[o.apiKey]),d=()=>p(this,null,function*(){if(Q(r.status,o.jwt))try{a({status:"in-progress"});let l=yield u.getOrCreateWallet({jwt:o.jwt},e.defaultChain);a({status:"loaded",wallet:l})}catch(l){console.error("There was an error creating a wallet ",l),a(ge(l))}});return Ce(()=>{if(e.createOnLogin==="all-users"&&Q(r.status,o.jwt)){console.log("Getting or Creating wallet"),d();return}if(r.status==="loaded"&&o.jwt==null){console.log("Clearing wallet"),a({status:"not-loaded"});return}},[o.jwt,e.createOnLogin,r.status]),Ee(F.Provider,{value:S(c({},r),{getOrCreateWallet:d}),children:t})}import{useContext as ye}from"react";function ur(){let t=ye(F);if(!t)throw new Error("useWallet must be used within CrossmintAuthProvider or CrossmintWalletProvider");return t}import{useAuth as Er}from"@crossmint/client-sdk-auth-core/client";import{AuthProvider as we}from"@crossmint/client-sdk-auth-core/client";import{jsx as Z}from"react/jsx-runtime";function Sr({embeddedWallets:t,children:e}){let{crossmint:o,setJwt:r}=v("CrossmintAuthProvider must be used within CrossmintProvider");return Z(we,{setJwtToken:r,crossmint:o,children:Z(X,{config:t,children:e})})}import{CrossmintEvents as Rr,useCrossmintEvents as Fr}from"@crossmint/client-sdk-base";import{Chain as Br}from"@crossmint/client-sdk-smart-wallet";export{Br as Chain,Sr as CrossmintAuthProvider,Rr as CrossmintEvents,ke as CrossmintNFTCollectionView,Ne as CrossmintNFTDetail,Go as CrossmintPayButton,vo as CrossmintPaymentElement,Xo as CrossmintProvider,X as CrossmintWalletProvider,F as WalletContext,Er as useAuth,v as useCrossmint,Fr as useCrossmintEvents,ur as useWallet};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|