finished some functionality, design - wallet can be connected.
This commit is contained in:
38
packages/react-app/src/components/WalletButton.js
vendored
Normal file
38
packages/react-app/src/components/WalletButton.js
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
import React, { useEffect, useState } from "react";
|
||||
import { shortenAddress, useEthers, useLookupAddress } from "@usedapp/core";
|
||||
|
||||
import styles from "../styles";
|
||||
|
||||
const WalletButton = () => {
|
||||
const [accountAddress, setAccountAddress] = useState("");
|
||||
|
||||
const { ens } = useLookupAddress();
|
||||
const { account, activateBrowserWallet, deactivate } = useEthers();
|
||||
|
||||
useEffect(() => {
|
||||
if (ens) {
|
||||
setAccountAddress(ens);
|
||||
} else if (account) {
|
||||
setAccountAddress(shortenAddress(account));
|
||||
} else {
|
||||
setAccountAddress("");
|
||||
}
|
||||
}, [account, ens, setAccountAddress]);
|
||||
|
||||
return (
|
||||
<button
|
||||
onClick={() => {
|
||||
if (!account) {
|
||||
activateBrowserWallet();
|
||||
} else {
|
||||
deactivate();
|
||||
}
|
||||
}}
|
||||
className={styles.walletButton}
|
||||
>
|
||||
{accountAddress || "Connect Wallet"}
|
||||
</button>
|
||||
);
|
||||
};
|
||||
|
||||
export default WalletButton;
|
||||
Reference in New Issue
Block a user