Skip to content

Commit a46e453

Browse files
Merge pull request #63 from Web3Auth/feat/revamp-next-app
Update UI and Add more actions to NextJS Demo app
2 parents 6b260ab + 40773c1 commit a46e453

File tree

13 files changed

+26050
-4091
lines changed

13 files changed

+26050
-4091
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import { useWeb3Auth } from "../services/web3auth";
2+
import styles from "../styles/Home.module.css";
3+
4+
const Main = () => {
5+
const { provider, login, logout, getUserInfo, getAccounts, getBalance, signMessage } = useWeb3Auth();
6+
7+
const loggedInView = (
8+
<>
9+
<a onClick={getUserInfo} className={styles.card}>
10+
Get User Info
11+
</a>
12+
<a onClick={getAccounts} className={styles.card}>
13+
Get Accounts
14+
</a>
15+
<a onClick={getBalance} className={styles.card}>
16+
Get Balance
17+
</a>
18+
<a onClick={signMessage} className={styles.card}>
19+
Sign Message
20+
</a>
21+
<a onClick={logout} className={styles.card}>
22+
Log Out
23+
</a>
24+
25+
<div className={styles.console} id="console">
26+
<p className={styles.code}></p>
27+
</div>
28+
</>
29+
);
30+
31+
const unloggedInView = (
32+
<a onClick={login} className={styles.card}>
33+
Login
34+
</a>
35+
);
36+
37+
return <div className={styles.grid}>{provider ? loggedInView : unloggedInView}</div>;
38+
};
39+
40+
export default Main;
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import { ChangeEvent } from "react";
2+
import { CHAIN_CONFIG, CHAIN_CONFIG_TYPE } from "../config/chainConfig";
3+
import { WEB3AUTH_NETWORK, WEB3AUTH_NETWORK_TYPE } from "../config/web3AuthNetwork";
4+
import styles from "../styles/Home.module.css";
5+
import { Web3AuthContext } from "../services/web3auth";
6+
import { useContext } from "react";
7+
8+
interface IProps {
9+
setNetwork: (network: WEB3AUTH_NETWORK_TYPE) => void;
10+
setChain: (chain: CHAIN_CONFIG_TYPE) => void;
11+
}
12+
13+
const Setting = ({ setNetwork, setChain }: IProps) => {
14+
const networkChangeHandler = (e: ChangeEvent<HTMLSelectElement>) => {
15+
console.log("Settings", e.target.value);
16+
setNetwork(e.target.value as WEB3AUTH_NETWORK_TYPE);
17+
};
18+
19+
const chainChangeHandler = (e: ChangeEvent<HTMLSelectElement>) => {
20+
console.log("Settings", e.target.value);
21+
setChain(e.target.value as CHAIN_CONFIG_TYPE);
22+
};
23+
const { provider } = useContext(Web3AuthContext);
24+
const isLoggedIn = provider !== null;
25+
26+
return (
27+
<div className={styles.setting}>
28+
<div className={styles.row}>
29+
<label htmlFor="network" className={styles.label}>Web3Auth Network</label>
30+
<select id="network" onChange={networkChangeHandler} className={styles.select} disabled={isLoggedIn}>
31+
{Object.keys(WEB3AUTH_NETWORK).map((x: string) => {
32+
return (
33+
<option key={x} value={x}>
34+
{WEB3AUTH_NETWORK[x as WEB3AUTH_NETWORK_TYPE].displayName}
35+
</option>
36+
);
37+
})}
38+
</select>
39+
</div>
40+
<div className={styles.row}>
41+
<label htmlFor="network" className={styles.label}>Blockchain</label>
42+
<select onChange={chainChangeHandler} className={styles.select} disabled={isLoggedIn}>
43+
{Object.keys(CHAIN_CONFIG).map((x: string) => {
44+
return (
45+
<option key={x} value={x}>
46+
{CHAIN_CONFIG[x as CHAIN_CONFIG_TYPE].displayName}
47+
</option>
48+
);
49+
})}
50+
</select>
51+
</div>
52+
</div>
53+
);
54+
};
55+
56+
export default Setting;

0 commit comments

Comments
 (0)