@crossmint/client-sdk-react-ui 0.2.7-alpha.2 → 0.2.7-alpha.21
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/lib/index.cjs +1 -1
- package/lib/index.d.ts +5 -2
- package/lib/index.js +1 -1
- package/package.json +4 -3
- package/src/CrossmintPaymentElement.tsx +60 -0
- package/src/index.ts +3 -0
- package/src/version.ts +1 -1
package/lib/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var mt=Object.create;var w=Object.defineProperty;var ct=Object.getOwnPropertyDescriptor;var lt=Object.getOwnPropertyNames;var ut=Object.getPrototypeOf,pt=Object.prototype.hasOwnProperty;var ft=(t,e)=>{for(var o in e)w(t,o,{get:e[o],enumerable:!0})},j=(t,e,o,l)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of lt(e))!pt.call(t,s)&&s!==o&&w(t,s,{get:()=>e[s],enumerable:!(l=ct(e,s))||l.enumerable});return t};var b=(t,e,o)=>(o=t!=null?mt(ut(t)):{},j(e||!t||!t.__esModule?w(o,"default",{value:t,enumerable:!0}):o,t)),gt=t=>j(w({},"__esModule",{value:!0}),t);var Et={};ft(Et,{CheckoutEvents:()=>R.CheckoutEvents,CrossmintNFTCollectionView:()=>yt,CrossmintNFTDetail:()=>vt,CrossmintPayButton:()=>ht,CrossmintPaymentElement:()=>bt,CrossmintStatusButton:()=>Ct,useCrossmintEvents:()=>R.useCrossmintEvents});module.exports=gt(Et);var i=b(require("react"),1),W=require("react"),n=require("@crossmint/client-sdk-base");var Q=require("react-jss"),dt="#1e1e1e",K=t=>t==="light",T=t=>({buttonBgColor:K(t)?"white":dt,paragraphColor:K(t)?"black":"white"}),k=(0,Q.createUseStyles)({"@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"}});var U=require("react");function E(){let[t,e]=(0,U.useState)(!0);return(0,U.useEffect)(()=>{e(!1)},[]),{isServerSideRendering:t}}var c="0.2.7-alpha.21";var St={type:n.mintingContractTypes.CANDY_MACHINE};function ht({className:t,disabled:e,onClick:o,style:l,tabIndex:s,theme:d="dark",mintTo:S,emailTo:h,listingId:f,clientId:m,auctionId:C,hideMintOnInactiveClient:x=!1,showOverlay:_=!0,mintConfig:g=St,whPassThroughArgs:D,environment:N,paymentMethod:I,preferredSigninMethod:P,dismissOverlayOnClick:O,prepay:H,locale:B="en-US",currency:L="USD",successCallbackURL:y="",failureCallbackURL:$="",...v}){let[A,J]=(0,W.useState)(!1),[q,X]=(0,W.useState)(n.onboardingRequestStatusResponse.WAITING_SUBMISSION),{isServerSideRendering:Z}=E(),{fetchClientIntegration:tt}=(0,n.crossmintStatusService)({libVersion:c,clientId:m,environment:N,auctionId:C,mintConfig:g,setStatus:X,clientName:n.clientNames.reactUi}),{connect:et}=(0,n.crossmintModalService)({clientId:m,showOverlay:_,dismissOverlayOnClick:O,setConnecting:J,libVersion:c,environment:N,clientName:n.clientNames.reactUi,locale:B,currency:L,successCallbackURL:y,failureCallbackURL:$}),{getButtonText:ot,shouldHideButton:nt,handleClick:st}=(0,n.crossmintPayButtonService)({onClick:o,connecting:A,paymentMethod:I,locale:B});(0,i.useEffect)(()=>{x&&tt()},[q]);let rt=at=>st(at,()=>{et(g,S,h,f,D,I,P,H)}),G=k(T(d)),it=(0,i.useMemo)(()=>i.default.createElement("span",{className:G.crossmintParagraph,role:"button-paragraph"},ot(A)),[A]);return nt({hideMintOnInactiveClient:x,status:q})?null:i.default.createElement(i.default.Fragment,null,!Z&&i.default.createElement("button",{className:`${G.crossmintButton} ${t||""}`,disabled:e,onClick:rt,style:{...l},tabIndex:s,...v},i.default.createElement("img",{className:G.crossmintImg,src:"https://www.crossmint.io/assets/crossmint/logo.svg",alt:"Crossmint logo"}),it))}var r=b(require("react"),1),a=require("@crossmint/client-sdk-base");function Ct({className:t,disabled:e,onClick:o,style:l,tabIndex:s,theme:d="dark",clientId:S,auctionId:h,platformId:f,mintConfig:m,environment:C,locale:x="en-US",..._}){let[g,D]=(0,r.useState)(a.onboardingRequestStatusResponse.WAITING_SUBMISSION),{isServerSideRendering:N}=E(),{goToOnboarding:I,fetchClientIntegration:P}=(0,a.crossmintStatusService)({libVersion:c,clientId:S,environment:C,platformId:f,auctionId:h,mintConfig:m,setStatus:D,clientName:a.clientNames.reactUi}),{getButtonText:O,isButtonDisabled:H,handleClick:B}=(0,a.crossmintStatusButtonService)({onClick:o,locale:x}),L=v=>B(v,g,I);(0,r.useEffect)(()=>{P();let v=setInterval(()=>{P()},60*1e3);return()=>clearInterval(v)},[]);let y=k(T(d)),$=(0,r.useMemo)(()=>r.default.createElement("span",{className:y.crossmintParagraph},O(g)),[g]);return r.default.createElement(r.default.Fragment,null,!N&&r.default.createElement("button",{className:`${y.crossmintButton} ${t||""}`,disabled:H(g),onClick:L,style:{...l},tabIndex:s,..._},r.default.createElement("img",{className:y.crossmintImg,src:`${a.baseUrls.prod}/assets/crossmint/logo.svg`,alt:"Crossmint logo"}),$))}var Y=b(require("react"),1),V=require("@crossmint/client-sdk-base");function yt(t){(0,V.assertValidNFTCollectionViewProps)(t);let e=(0,V.getNFTCollectionViewSrc)(t,c);return Y.createElement("iframe",{src:e,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-collection-view"})}var z=b(require("react"),1),M=require("@crossmint/client-sdk-base");function vt(t){(0,M.assertValidValidateNFTDetailProps)(t);let e=(0,M.getNFTDetailSrc)(t,c);return z.createElement("iframe",{src:e,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-details"})}var p=b(require("react"),1),F=require("@crossmint/client-sdk-base");function bt(t){let[e,o]=(0,p.useState)(0),{getIframeUrl:l,listenToEvents:s,emitQueryParams:d}=(0,F.crossmintPaymentService)(t),{listenToEvents:S}=(0,F.crossmintUiService)({environment:t.environment});(0,p.useEffect)(()=>{s(f=>{var m;return(m=t.onEvent)==null?void 0:m.call(t,f.data)})},[s,t.onEvent]),(0,p.useEffect)(()=>{S(f=>{let{type:m,payload:C}=f.data;switch(m){case"ui:height.changed":o(C.height);break;default:return}})},[]),(0,p.useEffect)(()=>{d({recipient:t.recipient,mintConfig:t.mintConfig,locale:t.locale})},[d,t.recipient,t.mintConfig,t.locale]);let h=l();return p.default.createElement("iframe",{src:h,id:"iframe-crossmint-payment-element",role:"iframe-crossmint-payment-element",allow:"payment *",style:{border:"none !important",padding:"0px !important",width:"100% !important",minWidth:"100% !important",overflow:"hidden !important",display:"block !important",userSelect:"none",transform:"translate(0px) !important",opacity:"1",transition:"ease 0s, opacity 0.4s ease 0.1s",height:`${e}px`}})}var R=require("@crossmint/client-sdk-base");0&&(module.exports={CheckoutEvents,CrossmintNFTCollectionView,CrossmintNFTDetail,CrossmintPayButton,CrossmintPaymentElement,CrossmintStatusButton,useCrossmintEvents});
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { MouseEvent, CSSProperties } from 'react';
|
|
2
|
-
import { CrossmintPayButtonProps, BaseButtonProps, NFTCollectionViewProps, NFTDetailProps } from '@crossmint/client-sdk-base';
|
|
2
|
+
import { CrossmintPayButtonProps, BaseButtonProps, NFTCollectionViewProps, NFTDetailProps, PaymentElement } from '@crossmint/client-sdk-base';
|
|
3
|
+
export { CheckoutEventMap, CheckoutEvents, CrossmintCheckoutEvent, useCrossmintEvents } from '@crossmint/client-sdk-base';
|
|
3
4
|
|
|
4
5
|
interface CrossmintPayButtonReactProps extends CrossmintPayButtonProps {
|
|
5
6
|
onClick?: (e: MouseEvent<HTMLButtonElement>) => void;
|
|
@@ -18,4 +19,6 @@ declare function CrossmintNFTCollectionView(props: NFTCollectionViewProps): JSX.
|
|
|
18
19
|
|
|
19
20
|
declare function CrossmintNFTDetail(props: NFTDetailProps): JSX.Element;
|
|
20
21
|
|
|
21
|
-
|
|
22
|
+
declare function CrossmintPaymentElement(props: PaymentElement): JSX.Element;
|
|
23
|
+
|
|
24
|
+
export { CrossmintNFTCollectionView, CrossmintNFTDetail, CrossmintPayButton, CrossmintPaymentElement, CrossmintStatusButton };
|
package/lib/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import C,{useEffect as nt,useMemo as st}from"react";import{useState as O}from"react";import{clientNames as H,crossmintModalService as rt,crossmintPayButtonService as it,crossmintStatusService as at,mintingContractTypes as mt,onboardingRequestStatusResponse as ct}from"@crossmint/client-sdk-base";import{createUseStyles as Z}from"react-jss";var tt="#1e1e1e",D=t=>t==="light",I=t=>({buttonBgColor:D(t)?"white":tt,paragraphColor:D(t)?"black":"white"}),P=Z({"@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"}});import{useEffect as et,useState as ot}from"react";function h(){let[t,e]=ot(!0);return et(()=>{e(!1)},[]),{isServerSideRendering:t}}var n="0.2.7-alpha.21";var lt={type:mt.CANDY_MACHINE};function Lt({className:t,disabled:e,onClick:l,style:u,tabIndex:m,theme:c="dark",mintTo:p,emailTo:f,listingId:i,clientId:o,auctionId:g,hideMintOnInactiveClient:v=!1,showOverlay:B=!0,mintConfig:a=lt,whPassThroughArgs:w,environment:b,paymentMethod:E,preferredSigninMethod:x,dismissOverlayOnClick:T,prepay:k,locale:N="en-US",currency:U="USD",successCallbackURL:d="",failureCallbackURL:V="",...S}){let[M,A]=O(!1),[_,G]=O(ct.WAITING_SUBMISSION),{isServerSideRendering:W}=h(),{fetchClientIntegration:q}=at({libVersion:n,clientId:o,environment:b,auctionId:g,mintConfig:a,setStatus:G,clientName:H.reactUi}),{connect:j}=rt({clientId:o,showOverlay:B,dismissOverlayOnClick:T,setConnecting:A,libVersion:n,environment:b,clientName:H.reactUi,locale:N,currency:U,successCallbackURL:d,failureCallbackURL:V}),{getButtonText:K,shouldHideButton:Q,handleClick:Y}=it({onClick:l,connecting:M,paymentMethod:E,locale:N});nt(()=>{v&&q()},[_]);let z=X=>Y(X,()=>{j(a,p,f,i,w,E,x,k)}),F=P(I(c)),J=st(()=>C.createElement("span",{className:F.crossmintParagraph,role:"button-paragraph"},K(M)),[M]);return Q({hideMintOnInactiveClient:v,status:_})?null:C.createElement(C.Fragment,null,!W&&C.createElement("button",{className:`${F.crossmintButton} ${t||""}`,disabled:e,onClick:z,style:{...u},tabIndex:m,...S},C.createElement("img",{className:F.crossmintImg,src:"https://www.crossmint.io/assets/crossmint/logo.svg",alt:"Crossmint logo"}),J))}import y,{useEffect as ut,useMemo as pt,useState as ft}from"react";import{baseUrls as gt,clientNames as dt,crossmintStatusButtonService as St,crossmintStatusService as ht,onboardingRequestStatusResponse as Ct}from"@crossmint/client-sdk-base";function Yt({className:t,disabled:e,onClick:l,style:u,tabIndex:m,theme:c="dark",clientId:p,auctionId:f,platformId:i,mintConfig:o,environment:g,locale:v="en-US",...B}){let[a,w]=ft(Ct.WAITING_SUBMISSION),{isServerSideRendering:b}=h(),{goToOnboarding:E,fetchClientIntegration:x}=ht({libVersion:n,clientId:p,environment:g,platformId:i,auctionId:f,mintConfig:o,setStatus:w,clientName:dt.reactUi}),{getButtonText:T,isButtonDisabled:k,handleClick:N}=St({onClick:l,locale:v}),U=S=>N(S,a,E);ut(()=>{x();let S=setInterval(()=>{x()},60*1e3);return()=>clearInterval(S)},[]);let d=P(I(c)),V=pt(()=>y.createElement("span",{className:d.crossmintParagraph},T(a)),[a]);return y.createElement(y.Fragment,null,!b&&y.createElement("button",{className:`${d.crossmintButton} ${t||""}`,disabled:k(a),onClick:U,style:{...u},tabIndex:m,...B},y.createElement("img",{className:d.crossmintImg,src:`${gt.prod}/assets/crossmint/logo.svg`,alt:"Crossmint logo"}),V))}import*as L from"react";import{assertValidNFTCollectionViewProps as yt,getNFTCollectionViewSrc as vt}from"@crossmint/client-sdk-base";function te(t){yt(t);let e=vt(t,n);return L.createElement("iframe",{src:e,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-collection-view"})}import*as $ from"react";import{assertValidValidateNFTDetailProps as bt,getNFTDetailSrc as Et}from"@crossmint/client-sdk-base";function re(t){bt(t);let e=Et(t,n);return $.createElement("iframe",{src:e,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-details"})}import xt,{useEffect as R,useState as Nt}from"react";import{crossmintPaymentService as It,crossmintUiService as Pt}from"@crossmint/client-sdk-base";function ce(t){let[e,l]=Nt(0),{getIframeUrl:u,listenToEvents:m,emitQueryParams:c}=It(t),{listenToEvents:p}=Pt({environment:t.environment});R(()=>{m(i=>{var o;return(o=t.onEvent)==null?void 0:o.call(t,i.data)})},[m,t.onEvent]),R(()=>{p(i=>{let{type:o,payload:g}=i.data;switch(o){case"ui:height.changed":l(g.height);break;default:return}})},[]),R(()=>{c({recipient:t.recipient,mintConfig:t.mintConfig,locale:t.locale})},[c,t.recipient,t.mintConfig,t.locale]);let f=u();return xt.createElement("iframe",{src:f,id:"iframe-crossmint-payment-element",role:"iframe-crossmint-payment-element",allow:"payment *",style:{border:"none !important",padding:"0px !important",width:"100% !important",minWidth:"100% !important",overflow:"hidden !important",display:"block !important",userSelect:"none",transform:"translate(0px) !important",opacity:"1",transition:"ease 0s, opacity 0.4s ease 0.1s",height:`${e}px`}})}import{CheckoutEvents as Ce,useCrossmintEvents as ye}from"@crossmint/client-sdk-base";export{Ce as CheckoutEvents,te as CrossmintNFTCollectionView,re as CrossmintNFTDetail,Lt as CrossmintPayButton,ce as CrossmintPaymentElement,Yt as CrossmintStatusButton,ye as useCrossmintEvents};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crossmint/client-sdk-react-ui",
|
|
3
|
-
"version": "0.2.7-alpha.
|
|
3
|
+
"version": "0.2.7-alpha.21",
|
|
4
4
|
"author": "Paella Labs Inc",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": "https://github.com/CrossMint/crossmint-client-sdk",
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"test": "jest"
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@crossmint/client-sdk-base": "^0.2.7-alpha.
|
|
35
|
+
"@crossmint/client-sdk-base": "^0.2.7-alpha.21",
|
|
36
36
|
"react-jss": "10.9.2",
|
|
37
37
|
"uuid": "^8.3.2"
|
|
38
38
|
},
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
"react-dom": ">=17.0.2"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
+
"@testing-library/jest-dom": "^5.16.5",
|
|
44
45
|
"@types/jest": "^27.4.1",
|
|
45
46
|
"@types/react": "17.0.34",
|
|
46
47
|
"@types/react-dom": "^17.0.11",
|
|
@@ -49,5 +50,5 @@
|
|
|
49
50
|
"ts-jest": "^27.1.3",
|
|
50
51
|
"ts-node-dev": "^1.1.8"
|
|
51
52
|
},
|
|
52
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "5c09dceac94884d81a2e4892d0adbfce81230180"
|
|
53
54
|
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import React, { useEffect, useState } from "react";
|
|
2
|
+
|
|
3
|
+
import { crossmintPaymentService, crossmintUiService } from "@crossmint/client-sdk-base";
|
|
4
|
+
import type { CrossmintCheckoutEvent, PaymentElement } from "@crossmint/client-sdk-base";
|
|
5
|
+
|
|
6
|
+
export function CrossmintPaymentElement(props: PaymentElement) {
|
|
7
|
+
const [height, setHeight] = useState(0);
|
|
8
|
+
const { getIframeUrl, listenToEvents, emitQueryParams } = crossmintPaymentService(props);
|
|
9
|
+
const { listenToEvents: listenToUiEvents } = crossmintUiService({ environment: props.environment });
|
|
10
|
+
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
listenToEvents((event: MessageEvent<CrossmintCheckoutEvent>) => props.onEvent?.(event.data));
|
|
13
|
+
}, [listenToEvents, props.onEvent]);
|
|
14
|
+
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
listenToUiEvents((event: MessageEvent<any>) => {
|
|
17
|
+
const { type, payload } = event.data;
|
|
18
|
+
|
|
19
|
+
switch (type) {
|
|
20
|
+
case "ui:height.changed":
|
|
21
|
+
setHeight(payload.height);
|
|
22
|
+
break;
|
|
23
|
+
default:
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}, []);
|
|
28
|
+
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
emitQueryParams({
|
|
31
|
+
recipient: props.recipient,
|
|
32
|
+
mintConfig: props.mintConfig,
|
|
33
|
+
locale: props.locale,
|
|
34
|
+
});
|
|
35
|
+
}, [emitQueryParams, props.recipient, props.mintConfig, props.locale]);
|
|
36
|
+
|
|
37
|
+
const iframeUrl = getIframeUrl();
|
|
38
|
+
|
|
39
|
+
return (
|
|
40
|
+
<iframe
|
|
41
|
+
src={iframeUrl}
|
|
42
|
+
id="iframe-crossmint-payment-element"
|
|
43
|
+
role="iframe-crossmint-payment-element"
|
|
44
|
+
allow="payment *"
|
|
45
|
+
style={{
|
|
46
|
+
border: "none !important",
|
|
47
|
+
padding: "0px !important",
|
|
48
|
+
width: "100% !important",
|
|
49
|
+
minWidth: "100% !important",
|
|
50
|
+
overflow: "hidden !important",
|
|
51
|
+
display: "block !important",
|
|
52
|
+
userSelect: "none",
|
|
53
|
+
transform: "translate(0px) !important",
|
|
54
|
+
opacity: "1",
|
|
55
|
+
transition: "ease 0s, opacity 0.4s ease 0.1s",
|
|
56
|
+
height: `${height}px`,
|
|
57
|
+
}}
|
|
58
|
+
></iframe>
|
|
59
|
+
);
|
|
60
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -2,3 +2,6 @@ export * from "./CrossmintPayButton";
|
|
|
2
2
|
export * from "./CrossmintStatusButton";
|
|
3
3
|
export * from "./CrossmintNFTCollectionView";
|
|
4
4
|
export * from "./CrossmintNFTDetail";
|
|
5
|
+
export * from "./CrossmintPaymentElement";
|
|
6
|
+
export { CheckoutEvents, useCrossmintEvents } from "@crossmint/client-sdk-base";
|
|
7
|
+
export type { CrossmintCheckoutEvent, CheckoutEventMap } from "@crossmint/client-sdk-base";
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const LIB_VERSION = "0.2.7-alpha.
|
|
1
|
+
export const LIB_VERSION = "0.2.7-alpha.21";
|