@crossmint/client-sdk-react-ui 0.2.8-alpha.2 → 1.0.0-alpha.0
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/README.md +1 -1
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +5 -11
- package/lib/index.js +1 -1
- package/package.json +3 -3
- package/src/CrossmintPayButton.tsx +36 -55
- package/src/index.ts +0 -1
- package/src/types.ts +3 -7
- package/src/version.ts +1 -1
- package/src/CrossmintStatusButton.tsx +0 -85
package/README.md
CHANGED
|
@@ -16,7 +16,7 @@ yarn add @crossmint/client-sdk-react-ui
|
|
|
16
16
|
|
|
17
17
|
### Add payment button to your site
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
Check our dedicated section for payments [in the docs](https://docs.crossmint.com/docs/integration-guide).
|
|
20
20
|
|
|
21
21
|
---
|
|
22
22
|
|
package/lib/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var rt=Object.create;var f=Object.defineProperty;var it=Object.getOwnPropertyDescriptor;var st=Object.getOwnPropertyNames;var at=Object.getPrototypeOf,mt=Object.prototype.hasOwnProperty;var ct=(t,e)=>{for(var n in e)f(t,n,{get:e[n],enumerable:!0})},B=(t,e,n,c)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of st(e))!mt.call(t,o)&&o!==n&&f(t,o,{get:()=>e[o],enumerable:!(c=it(e,o))||c.enumerable});return t};var d=(t,e,n)=>(n=t!=null?rt(at(t)):{},B(e||!t||!t.__esModule?f(n,"default",{value:t,enumerable:!0}):n,t)),lt=t=>B(f({},"__esModule",{value:!0}),t);var yt={};ct(yt,{CheckoutEvents:()=>S.CheckoutEvents,CrossmintNFTCollectionView:()=>ft,CrossmintNFTDetail:()=>dt,CrossmintPayButton:()=>ut,CrossmintPaymentElement:()=>ht,useCrossmintEvents:()=>S.useCrossmintEvents});module.exports=lt(yt);var i=d(require("react"),1),L=require("react"),s=require("@crossmint/client-sdk-base");var V=require("react-jss"),pt="#1e1e1e",M=t=>t==="light",F=t=>({buttonBgColor:M(t)?"white":pt,paragraphColor:M(t)?"black":"white"}),R=(0,V.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 h=require("react");function N(){let[t,e]=(0,h.useState)(!0);return(0,h.useEffect)(()=>{e(!1)},[]),{isServerSideRendering:t}}var l="1.0.0-alpha.0";var gt={type:s.mintingContractTypes.CANDY_MACHINE};function ut(t){let{className:e,disabled:n,onClick:c,style:o,tabIndex:x,theme:w="dark",mintTo:b,emailTo:a,listingId:p,auctionId:g,showOverlay:E=!0,mintConfig:A=gt,whPassThroughArgs:D,environment:_,paymentMethod:T,preferredSigninMethod:H,dismissOverlayOnClick:G,prepay:$,locale:k="en-US",currency:j="usd",successCallbackURL:K="",failureCallbackURL:Q="",loginEmail:W="",projectId:Y,...u}=t,q="clientId"in u?u.clientId:u.collectionId,[P,z]=(0,L.useState)(!1),{isServerSideRendering:J}=N(),{connect:X}=(0,s.crossmintModalService)({clientId:q,projectId:Y,showOverlay:E,dismissOverlayOnClick:G,setConnecting:z,libVersion:l,environment:_,clientName:s.clientNames.reactUi,locale:k,currency:j,successCallbackURL:K,failureCallbackURL:Q,loginEmail:W}),{getButtonText:Z,handleClick:tt}=(0,s.crossmintPayButtonService)({onClick:c,connecting:P,paymentMethod:T,locale:k}),et=ot=>tt(ot,()=>{X(A,b,a,p,D,T,H,$)}),I=R(F(w)),nt=(0,i.useMemo)(()=>i.default.createElement("span",{className:I.crossmintParagraph,role:"button-paragraph"},Z(P)),[P]);return i.default.createElement(i.default.Fragment,null,!J&&i.default.createElement("button",{className:`${I.crossmintButton} ${e||""}`,disabled:n,onClick:et,style:{...o},tabIndex:x,...u},i.default.createElement("img",{className:I.crossmintImg,src:"https://www.crossmint.io/assets/crossmint/logo.svg",alt:"Crossmint logo"}),nt))}var U=d(require("react"),1),y=require("@crossmint/client-sdk-base");function ft(t){(0,y.assertValidNFTCollectionViewProps)(t);let e=(0,y.getNFTCollectionViewSrc)(t,l);return U.createElement("iframe",{src:e,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-collection-view"})}var O=d(require("react"),1),C=require("@crossmint/client-sdk-base");function dt(t){(0,C.assertValidValidateNFTDetailProps)(t);let e=(0,C.getNFTDetailSrc)(t,l);return O.createElement("iframe",{src:e,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-details"})}var r=d(require("react"),1),v=require("@crossmint/client-sdk-base");function ht(t){let[e,n]=(0,r.useState)(0),{getIframeUrl:c,listenToEvents:o,emitQueryParams:x}=(0,v.crossmintPaymentService)(t),{listenToEvents:w}=(0,v.crossmintUiService)({environment:t.environment}),[b]=(0,r.useState)(c());return(0,r.useEffect)(()=>{let a=o(p=>{var g;return(g=t.onEvent)==null?void 0:g.call(t,p.data)});return()=>{a&&a()}},[]),(0,r.useEffect)(()=>{let a=w(p=>{let{type:g,payload:E}=p.data;switch(g){case"ui:height.changed":n(E.height);break;default:return}});return()=>{a&&a()}},[]),(0,r.useEffect)(()=>{x({recipient:t.recipient,mintConfig:t.mintConfig,locale:t.locale,whPassThroughArgs:t.whPassThroughArgs})},[t.recipient,t.mintConfig,t.locale,t.whPassThroughArgs]),r.default.createElement("iframe",{src:b,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 S=require("@crossmint/client-sdk-base");0&&(module.exports={CheckoutEvents,CrossmintNFTCollectionView,CrossmintNFTDetail,CrossmintPayButton,CrossmintPaymentElement,useCrossmintEvents});
|
package/lib/index.d.ts
CHANGED
|
@@ -1,19 +1,13 @@
|
|
|
1
1
|
import { MouseEvent, CSSProperties } from 'react';
|
|
2
|
-
import { CrossmintPayButtonProps,
|
|
2
|
+
import { CrossmintPayButtonProps, NFTCollectionViewProps, NFTDetailProps, PaymentElement } from '@crossmint/client-sdk-base';
|
|
3
3
|
export { CheckoutEventMap, CheckoutEvents, CrossmintCheckoutEvent, useCrossmintEvents } from '@crossmint/client-sdk-base';
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
type CrossmintPayButtonReactProps = CrossmintPayButtonProps & {
|
|
6
6
|
onClick?: (e: MouseEvent<HTMLButtonElement>) => void;
|
|
7
7
|
style?: CSSProperties;
|
|
8
|
-
}
|
|
9
|
-
interface CrossmintStatusButtonReactProps extends BaseButtonProps {
|
|
10
|
-
onClick?: (e: MouseEvent<HTMLButtonElement>) => void;
|
|
11
|
-
style?: CSSProperties;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
declare function CrossmintPayButton({ className, disabled, onClick, style, tabIndex, theme, mintTo, emailTo, listingId, clientId, auctionId, hideMintOnInactiveClient, showOverlay, mintConfig, whPassThroughArgs, environment, paymentMethod, preferredSigninMethod, dismissOverlayOnClick, prepay, locale, currency, successCallbackURL, failureCallbackURL, loginEmail, ...props }: CrossmintPayButtonReactProps): JSX.Element | null;
|
|
8
|
+
};
|
|
15
9
|
|
|
16
|
-
declare function
|
|
10
|
+
declare function CrossmintPayButton(buttonProps: CrossmintPayButtonReactProps): JSX.Element;
|
|
17
11
|
|
|
18
12
|
declare function CrossmintNFTCollectionView(props: NFTCollectionViewProps): JSX.Element;
|
|
19
13
|
|
|
@@ -21,4 +15,4 @@ declare function CrossmintNFTDetail(props: NFTDetailProps): JSX.Element;
|
|
|
21
15
|
|
|
22
16
|
declare function CrossmintPaymentElement(props: PaymentElement): JSX.Element;
|
|
23
17
|
|
|
24
|
-
export { CrossmintNFTCollectionView, CrossmintNFTDetail, CrossmintPayButton, CrossmintPaymentElement
|
|
18
|
+
export { CrossmintNFTCollectionView, CrossmintNFTDetail, CrossmintPayButton, CrossmintPaymentElement };
|
package/lib/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import m,{useMemo as Z}from"react";import{useState as tt}from"react";import{clientNames as et,crossmintModalService as nt,crossmintPayButtonService as ot,mintingContractTypes as rt}from"@crossmint/client-sdk-base";import{createUseStyles as q}from"react-jss";var z="#1e1e1e",b=t=>t==="light",E=t=>({buttonBgColor:b(t)?"white":z,paragraphColor:b(t)?"black":"white"}),P=q({"@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 J,useState as X}from"react";function v(){let[t,e]=X(!0);return J(()=>{e(!1)},[]),{isServerSideRendering:t}}var i="1.0.0-alpha.0";var it={type:rt.CANDY_MACHINE};function It(t){let{className:e,disabled:l,onClick:p,style:g,tabIndex:u,theme:f="dark",mintTo:d,emailTo:n,listingId:s,auctionId:a,showOverlay:h=!0,mintConfig:k=it,whPassThroughArgs:B,environment:M,paymentMethod:x,preferredSigninMethod:V,dismissOverlayOnClick:F,prepay:R,locale:w="en-US",currency:L="usd",successCallbackURL:U="",failureCallbackURL:O="",loginEmail:A="",projectId:D,...c}=t,_="clientId"in c?c.clientId:c.collectionId,[y,H]=tt(!1),{isServerSideRendering:G}=v(),{connect:$}=nt({clientId:_,projectId:D,showOverlay:h,dismissOverlayOnClick:F,setConnecting:H,libVersion:i,environment:M,clientName:et.reactUi,locale:w,currency:L,successCallbackURL:U,failureCallbackURL:O,loginEmail:A}),{getButtonText:j,handleClick:K}=ot({onClick:p,connecting:y,paymentMethod:x,locale:w}),Q=Y=>K(Y,()=>{$(k,d,n,s,B,x,V,R)}),C=P(E(f)),W=Z(()=>m.createElement("span",{className:C.crossmintParagraph,role:"button-paragraph"},j(y)),[y]);return m.createElement(m.Fragment,null,!G&&m.createElement("button",{className:`${C.crossmintButton} ${e||""}`,disabled:l,onClick:Q,style:{...g},tabIndex:u,...c},m.createElement("img",{className:C.crossmintImg,src:"https://www.crossmint.io/assets/crossmint/logo.svg",alt:"Crossmint logo"}),W))}import*as I from"react";import{assertValidNFTCollectionViewProps as st,getNFTCollectionViewSrc as at}from"@crossmint/client-sdk-base";function Mt(t){st(t);let e=at(t,i);return I.createElement("iframe",{src:e,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-collection-view"})}import*as N from"react";import{assertValidValidateNFTDetailProps as mt,getNFTDetailSrc as ct}from"@crossmint/client-sdk-base";function Ut(t){mt(t);let e=ct(t,i);return N.createElement("iframe",{src:e,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-details"})}import lt,{useEffect as S,useState as T}from"react";import{crossmintPaymentService as pt,crossmintUiService as gt}from"@crossmint/client-sdk-base";function _t(t){let[e,l]=T(0),{getIframeUrl:p,listenToEvents:g,emitQueryParams:u}=pt(t),{listenToEvents:f}=gt({environment:t.environment}),[d]=T(p());return S(()=>{let n=g(s=>{var a;return(a=t.onEvent)==null?void 0:a.call(t,s.data)});return()=>{n&&n()}},[]),S(()=>{let n=f(s=>{let{type:a,payload:h}=s.data;switch(a){case"ui:height.changed":l(h.height);break;default:return}});return()=>{n&&n()}},[]),S(()=>{u({recipient:t.recipient,mintConfig:t.mintConfig,locale:t.locale,whPassThroughArgs:t.whPassThroughArgs})},[t.recipient,t.mintConfig,t.locale,t.whPassThroughArgs]),lt.createElement("iframe",{src:d,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 Yt,useCrossmintEvents as qt}from"@crossmint/client-sdk-base";export{Yt as CheckoutEvents,Mt as CrossmintNFTCollectionView,Ut as CrossmintNFTDetail,It as CrossmintPayButton,_t as CrossmintPaymentElement,qt as useCrossmintEvents};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crossmint/client-sdk-react-ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0-alpha.0",
|
|
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.
|
|
35
|
+
"@crossmint/client-sdk-base": "^1.0.0-alpha.0",
|
|
36
36
|
"react-jss": "10.9.2",
|
|
37
37
|
"uuid": "^8.3.2"
|
|
38
38
|
},
|
|
@@ -50,5 +50,5 @@
|
|
|
50
50
|
"ts-jest": "^27.1.3",
|
|
51
51
|
"ts-node-dev": "^1.1.8"
|
|
52
52
|
},
|
|
53
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "1c57e1315f8881b0878ee48bee8b7d6e61b81fd4"
|
|
54
54
|
}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, { MouseEvent, useEffect, useMemo } from "react";
|
|
2
2
|
import { useState } from "react";
|
|
3
3
|
|
|
4
4
|
import {
|
|
5
5
|
clientNames,
|
|
6
6
|
crossmintModalService,
|
|
7
7
|
crossmintPayButtonService,
|
|
8
|
-
crossmintStatusService,
|
|
9
8
|
mintingContractTypes,
|
|
10
|
-
onboardingRequestStatusResponse,
|
|
11
9
|
} from "@crossmint/client-sdk-base";
|
|
12
10
|
|
|
13
11
|
import { formatProps, useStyles } from "./styles";
|
|
@@ -19,50 +17,43 @@ const defaultMintConfig: any = {
|
|
|
19
17
|
type: mintingContractTypes.CANDY_MACHINE,
|
|
20
18
|
};
|
|
21
19
|
|
|
22
|
-
export function CrossmintPayButton({
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
}
|
|
20
|
+
export function CrossmintPayButton(buttonProps: CrossmintPayButtonReactProps) {
|
|
21
|
+
const {
|
|
22
|
+
className,
|
|
23
|
+
disabled,
|
|
24
|
+
onClick,
|
|
25
|
+
style,
|
|
26
|
+
tabIndex,
|
|
27
|
+
theme = "dark",
|
|
28
|
+
mintTo,
|
|
29
|
+
emailTo,
|
|
30
|
+
listingId,
|
|
31
|
+
auctionId,
|
|
32
|
+
showOverlay = true,
|
|
33
|
+
mintConfig = defaultMintConfig,
|
|
34
|
+
whPassThroughArgs,
|
|
35
|
+
environment,
|
|
36
|
+
paymentMethod,
|
|
37
|
+
preferredSigninMethod,
|
|
38
|
+
dismissOverlayOnClick,
|
|
39
|
+
prepay,
|
|
40
|
+
locale = "en-US",
|
|
41
|
+
currency = "usd",
|
|
42
|
+
successCallbackURL = "",
|
|
43
|
+
failureCallbackURL = "",
|
|
44
|
+
loginEmail = "",
|
|
45
|
+
projectId,
|
|
46
|
+
...props
|
|
47
|
+
} = buttonProps;
|
|
48
|
+
|
|
49
|
+
const collectionId = "clientId" in props ? props.clientId : props.collectionId;
|
|
50
|
+
|
|
50
51
|
const [connecting, setConnecting] = useState(false);
|
|
51
|
-
const [status, setStatus] = useState(onboardingRequestStatusResponse.WAITING_SUBMISSION);
|
|
52
52
|
const { isServerSideRendering } = useEnvironment();
|
|
53
53
|
|
|
54
|
-
const { fetchClientIntegration } = crossmintStatusService({
|
|
55
|
-
libVersion: LIB_VERSION,
|
|
56
|
-
clientId,
|
|
57
|
-
environment,
|
|
58
|
-
auctionId,
|
|
59
|
-
mintConfig,
|
|
60
|
-
setStatus,
|
|
61
|
-
clientName: clientNames.reactUi,
|
|
62
|
-
});
|
|
63
|
-
|
|
64
54
|
const { connect } = crossmintModalService({
|
|
65
|
-
clientId,
|
|
55
|
+
clientId: collectionId,
|
|
56
|
+
projectId,
|
|
66
57
|
showOverlay,
|
|
67
58
|
dismissOverlayOnClick,
|
|
68
59
|
setConnecting,
|
|
@@ -73,22 +64,16 @@ export function CrossmintPayButton({
|
|
|
73
64
|
currency,
|
|
74
65
|
successCallbackURL,
|
|
75
66
|
failureCallbackURL,
|
|
76
|
-
loginEmail
|
|
67
|
+
loginEmail,
|
|
77
68
|
});
|
|
78
69
|
|
|
79
|
-
const { getButtonText,
|
|
70
|
+
const { getButtonText, handleClick } = crossmintPayButtonService({
|
|
80
71
|
onClick,
|
|
81
72
|
connecting,
|
|
82
73
|
paymentMethod,
|
|
83
74
|
locale,
|
|
84
75
|
});
|
|
85
76
|
|
|
86
|
-
useEffect(() => {
|
|
87
|
-
if (hideMintOnInactiveClient) {
|
|
88
|
-
fetchClientIntegration();
|
|
89
|
-
}
|
|
90
|
-
}, [status]);
|
|
91
|
-
|
|
92
77
|
const _handleClick = (event: MouseEvent<HTMLButtonElement>) =>
|
|
93
78
|
handleClick(event, () => {
|
|
94
79
|
connect(
|
|
@@ -113,10 +98,6 @@ export function CrossmintPayButton({
|
|
|
113
98
|
);
|
|
114
99
|
}, [connecting]);
|
|
115
100
|
|
|
116
|
-
if (shouldHideButton({ hideMintOnInactiveClient, status })) {
|
|
117
|
-
return null;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
101
|
return (
|
|
121
102
|
<>
|
|
122
103
|
{!isServerSideRendering && (
|
package/src/index.ts
CHANGED
package/src/types.ts
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
import { CSSProperties, MouseEvent } from "react";
|
|
2
|
-
import { CrossmintPayButtonProps, BaseButtonProps } from "@crossmint/client-sdk-base";
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
onClick?: (e: MouseEvent<HTMLButtonElement>) => void;
|
|
6
|
-
style?: CSSProperties;
|
|
7
|
-
}
|
|
3
|
+
import { CrossmintPayButtonProps } from "@crossmint/client-sdk-base";
|
|
8
4
|
|
|
9
|
-
export
|
|
5
|
+
export type CrossmintPayButtonReactProps = CrossmintPayButtonProps & {
|
|
10
6
|
onClick?: (e: MouseEvent<HTMLButtonElement>) => void;
|
|
11
7
|
style?: CSSProperties;
|
|
12
|
-
}
|
|
8
|
+
};
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const LIB_VERSION = "0.
|
|
1
|
+
export const LIB_VERSION = "1.0.0-alpha.0";
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import React, { FC, MouseEventHandler, useEffect, useMemo, useState } from "react";
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
baseUrls,
|
|
5
|
-
clientNames,
|
|
6
|
-
crossmintStatusButtonService,
|
|
7
|
-
crossmintStatusService,
|
|
8
|
-
onboardingRequestStatusResponse,
|
|
9
|
-
} from "@crossmint/client-sdk-base";
|
|
10
|
-
|
|
11
|
-
import { formatProps, useStyles } from "./styles";
|
|
12
|
-
import { CrossmintStatusButtonReactProps } from "./types";
|
|
13
|
-
import useEnvironment from "./useEnvironment";
|
|
14
|
-
import { LIB_VERSION } from "./version";
|
|
15
|
-
|
|
16
|
-
export function CrossmintStatusButton({
|
|
17
|
-
className,
|
|
18
|
-
disabled,
|
|
19
|
-
onClick,
|
|
20
|
-
style,
|
|
21
|
-
tabIndex,
|
|
22
|
-
theme = "dark",
|
|
23
|
-
clientId,
|
|
24
|
-
auctionId,
|
|
25
|
-
platformId,
|
|
26
|
-
mintConfig,
|
|
27
|
-
environment,
|
|
28
|
-
locale = "en-US",
|
|
29
|
-
...props
|
|
30
|
-
}: CrossmintStatusButtonReactProps) {
|
|
31
|
-
const [status, setStatus] = useState(onboardingRequestStatusResponse.WAITING_SUBMISSION);
|
|
32
|
-
const { isServerSideRendering } = useEnvironment();
|
|
33
|
-
|
|
34
|
-
const { goToOnboarding, fetchClientIntegration } = crossmintStatusService({
|
|
35
|
-
libVersion: LIB_VERSION,
|
|
36
|
-
clientId,
|
|
37
|
-
environment,
|
|
38
|
-
platformId,
|
|
39
|
-
auctionId,
|
|
40
|
-
mintConfig,
|
|
41
|
-
setStatus,
|
|
42
|
-
clientName: clientNames.reactUi,
|
|
43
|
-
});
|
|
44
|
-
const { getButtonText, isButtonDisabled, handleClick } = crossmintStatusButtonService({ onClick, locale });
|
|
45
|
-
|
|
46
|
-
const _handleClick: MouseEventHandler<HTMLButtonElement> = (e) => handleClick(e, status, goToOnboarding);
|
|
47
|
-
|
|
48
|
-
useEffect(() => {
|
|
49
|
-
fetchClientIntegration();
|
|
50
|
-
|
|
51
|
-
const interval = setInterval(() => {
|
|
52
|
-
fetchClientIntegration();
|
|
53
|
-
}, 60 * 1000);
|
|
54
|
-
|
|
55
|
-
return () => clearInterval(interval);
|
|
56
|
-
}, []);
|
|
57
|
-
|
|
58
|
-
const classes = useStyles(formatProps(theme));
|
|
59
|
-
|
|
60
|
-
const content = useMemo(() => {
|
|
61
|
-
return <span className={classes.crossmintParagraph}>{getButtonText(status)}</span>;
|
|
62
|
-
}, [status]);
|
|
63
|
-
|
|
64
|
-
return (
|
|
65
|
-
<>
|
|
66
|
-
{!isServerSideRendering && (
|
|
67
|
-
<button
|
|
68
|
-
className={`${classes.crossmintButton} ${className || ""}`}
|
|
69
|
-
disabled={isButtonDisabled(status)}
|
|
70
|
-
onClick={_handleClick}
|
|
71
|
-
style={{ ...style }}
|
|
72
|
-
tabIndex={tabIndex}
|
|
73
|
-
{...props}
|
|
74
|
-
>
|
|
75
|
-
<img
|
|
76
|
-
className={classes.crossmintImg}
|
|
77
|
-
src={`${baseUrls.prod}/assets/crossmint/logo.svg`}
|
|
78
|
-
alt="Crossmint logo"
|
|
79
|
-
/>
|
|
80
|
-
{content}
|
|
81
|
-
</button>
|
|
82
|
-
)}
|
|
83
|
-
</>
|
|
84
|
-
);
|
|
85
|
-
}
|