forked from thirdweb-example/play-to-earn-game
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplay.tsx
116 lines (108 loc) · 3.14 KB
/
play.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
import {
ConnectWallet,
useAddress,
useContract,
useMetamask,
} from "@thirdweb-dev/react";
import React from "react";
import CurrentGear from "../components/CurrentGear";
import LoadingSection from "../components/LoadingSection";
import OwnedGear from "../components/OwnedGear";
import Rewards from "../components/Rewards";
import Shop from "../components/Shop";
import {
CHARACTER_EDITION_ADDRESS,
GOLD_GEMS_ADDRESS,
MINING_CONTRACT_ADDRESS,
PICKAXE_EDITION_ADDRESS,
} from "../const/contractAddresses";
import styles from "../styles/Home.module.css";
export default function Play() {
const address = useAddress();
const { contract: miningContract } = useContract(MINING_CONTRACT_ADDRESS);
const { contract: characterContract } = useContract(
CHARACTER_EDITION_ADDRESS,
"edition-drop"
);
const { contract: pickaxeContract } = useContract(
PICKAXE_EDITION_ADDRESS,
"edition-drop"
);
const { contract: tokenContract } = useContract(GOLD_GEMS_ADDRESS, "token");
if (!address) {
return (
<div className={styles.container}>
<ConnectWallet colorMode="dark" />
</div>
);
}
return (
<div className={styles.container}>
{miningContract &&
characterContract &&
tokenContract &&
pickaxeContract ? (
<div className={styles.mainSection}>
<CurrentGear
miningContract={miningContract}
characterContract={characterContract}
pickaxeContract={pickaxeContract}
/>
<Rewards
miningContract={miningContract}
tokenContract={tokenContract}
/>
</div>
) : (
<LoadingSection />
)}
<hr className={`${styles.divider} ${styles.bigSpacerTop}`} />
{pickaxeContract && miningContract ? (
<>
<h2 className={`${styles.noGapTop} ${styles.noGapBottom}`}>
Your Owned Pickaxes
</h2>
<div
style={{
width: "100%",
minHeight: "10rem",
display: "flex",
flexDirection: "row",
justifyContent: "center",
alignItems: "center",
marginTop: 8,
}}
>
<OwnedGear
pickaxeContract={pickaxeContract}
miningContract={miningContract}
/>
</div>
</>
) : (
<LoadingSection />
)}
<hr className={`${styles.divider} ${styles.bigSpacerTop}`} />
{pickaxeContract && tokenContract ? (
<>
<h2 className={`${styles.noGapTop} ${styles.noGapBottom}`}>Shop</h2>
<div
style={{
width: "100%",
minHeight: "10rem",
display: "flex",
flexDirection: "row",
justifyContent: "center",
alignItems: "center",
marginTop: 8,
}}
>
<Shop pickaxeContract={pickaxeContract} />
</div>
</>
) : (
<LoadingSection />
)}
</div>
);
}