@@ -5,30 +5,20 @@ import {
5
5
useColorMode ,
6
6
} from "@chakra-ui/react" ;
7
7
import { css , Global } from "@emotion/react" ;
8
- import { ThirdwebProvider , useContract } from "@thirdweb-dev/react" ;
8
+ import { ThirdwebProvider , useContract , useNFT } from "@thirdweb-dev/react" ;
9
9
import { EditionDrop } from "@thirdweb-dev/sdk" ;
10
10
import { ThirdwebStorage } from "@thirdweb-dev/storage" ;
11
- import React , { useEffect , useMemo } from "react" ;
11
+ import React , { useEffect } from "react" ;
12
12
import { createRoot } from "react-dom/client" ;
13
13
import { ERC1155ClaimButton } from "src/shared/claim-button-erc1155" ;
14
- import { ClaimPage } from "../shared/claim -page" ;
14
+ import { TokenMetadataPage } from "../shared/token-metadata -page" ;
15
15
import { Footer } from "../shared/footer" ;
16
16
import { Header } from "../shared/header" ;
17
17
import chakraTheme from "../shared/theme" ;
18
18
import { fontsizeCss } from "../shared/theme/typography" ;
19
19
import { parseIpfsGateway } from "../utils/parseIpfsGateway" ;
20
-
21
- interface BodyProps {
22
- children ?: React . ReactNode ;
23
- }
24
-
25
- const Body : React . FC < BodyProps > = ( { children } ) => {
26
- return (
27
- < Flex as = "main" px = "28px" w = "100%" flexGrow = { 1 } >
28
- { children }
29
- </ Flex >
30
- ) ;
31
- } ;
20
+ import { useGasless } from "../shared/hooks/useGasless" ;
21
+ import { Body } from "src/shared/body" ;
32
22
33
23
interface EditionDropEmbedProps {
34
24
contractAddress : string ;
@@ -45,6 +35,7 @@ const EditionDropEmbed: React.FC<EditionDropEmbedProps> = ({
45
35
} ) => {
46
36
const { setColorMode } = useColorMode ( ) ;
47
37
const { contract : editionDrop } = useContract < EditionDrop > ( contractAddress ) ;
38
+ const { data : nft , isLoading } = useNFT ( editionDrop , tokenId ) ;
48
39
49
40
useEffect ( ( ) => {
50
41
setColorMode ( colorScheme ) ;
@@ -67,14 +58,14 @@ const EditionDropEmbed: React.FC<EditionDropEmbedProps> = ({
67
58
>
68
59
< Header primaryColor = { primaryColor } colorScheme = { colorScheme } />
69
60
< Body >
70
- < ClaimPage contract = { editionDrop } >
61
+ < TokenMetadataPage metadata = { nft ?. metadata } isLoading = { isLoading } >
71
62
< ERC1155ClaimButton
72
63
contract = { editionDrop }
73
64
tokenId = { tokenId }
74
65
primaryColor = { primaryColor }
75
66
colorScheme = { colorScheme }
76
67
/>
77
- </ ClaimPage >
68
+ </ TokenMetadataPage >
78
69
</ Body >
79
70
< Footer />
80
71
</ Flex >
@@ -89,23 +80,15 @@ const App: React.FC = () => {
89
80
const rpcUrl = urlParams . get ( "rpcUrl" ) || "" ;
90
81
const tokenId = urlParams . get ( "tokenId" ) || "0" ;
91
82
const relayerUrl = urlParams . get ( "relayUrl" ) || "" ;
83
+ const biconomyApiKey = urlParams . get ( "biconomyApiKey" ) || "" ;
84
+ const biconomyApiId = urlParams . get ( "biconomyApiId" ) || "" ;
92
85
93
86
const ipfsGateway = parseIpfsGateway ( urlParams . get ( "ipfsGateway" ) || "" ) ;
94
87
95
88
const colorScheme = urlParams . get ( "theme" ) === "dark" ? "dark" : "light" ;
96
89
const primaryColor = urlParams . get ( "primaryColor" ) || "purple" ;
97
90
98
- const sdkOptions = useMemo (
99
- ( ) =>
100
- relayerUrl
101
- ? {
102
- gasless : {
103
- openzeppelin : { relayerUrl } ,
104
- } ,
105
- }
106
- : undefined ,
107
- [ relayerUrl ] ,
108
- ) ;
91
+ const sdkOptions = useGasless ( relayerUrl , biconomyApiKey , biconomyApiId ) ;
109
92
110
93
return (
111
94
< >
0 commit comments