blob: 45e6643c6aa9cdb617cee3f6f49844e1980da4eb (
plain) (
blame)
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
|
import React, { Dispatch, SetStateAction } from "react";
import { BeaconWallet } from "@taquito/beacon-wallet";
import { TezosToolkit } from "@taquito/taquito";
interface ButtonProps {
wallet: BeaconWallet | null;
setPublicToken: Dispatch<SetStateAction<string | null>>;
setUserAddress: Dispatch<SetStateAction<string>>;
setUserBalance: Dispatch<SetStateAction<number>>;
setWallet: Dispatch<SetStateAction<any>>;
setTezos: Dispatch<SetStateAction<TezosToolkit>>;
setBeaconConnection: Dispatch<SetStateAction<boolean>>;
}
const DisconnectButton = ({
wallet,
setPublicToken,
setUserAddress,
setUserBalance,
setWallet,
setTezos,
setBeaconConnection
}: ButtonProps): JSX.Element => {
const disconnectWallet = async (): Promise<void> => {
//window.localStorage.clear();
setUserAddress("");
setUserBalance(0);
setWallet(null);
const tezosTK = new TezosToolkit("https://api.tez.ie/rpc/granadanet");
setTezos(tezosTK);
setBeaconConnection(false);
setPublicToken(null);
console.log("disconnecting wallet");
if (wallet) {
await wallet.client.removeAllAccounts();
await wallet.client.removeAllPeers();
await wallet.client.destroy();
}
};
return (
<div className="buttons">
<button className="button" onClick={disconnectWallet}>
<i className="fas fa-times"></i> Disconnect wallet
</button>
</div>
);
};
export default DisconnectButton;
|