@@ -33,8 +33,7 @@ export const useWalletConnect = () => {
33 const [address, setAddress] = useState<string | null>(null);
33 const [address, setAddress] = useState<string | null>(null);
34 const [peerMeta, setPeerMeta] = useState<PeerMeta | null>(null);
34 const [peerMeta, setPeerMeta] = useState<PeerMeta | null>(null);
36− // Init connector
36+ const resetConnector = () => {
38 const newConnector = new WalletConnect({
37 const newConnector = new WalletConnect({
39 bridge: 'https://bridge.walletconnect.org',
38 bridge: 'https://bridge.walletconnect.org',
40 qrcodeModal: QRCodeModal,
39 qrcodeModal: QRCodeModal,
@@ -50,6 +49,11 @@ export const useWalletConnect = () => {
50 if (newConnector.peerMeta) {
49 if (newConnector.peerMeta) {
51 setPeerMeta(newConnector.peerMeta);
50 setPeerMeta(newConnector.peerMeta);
53 // eslint-disable-next-line react-hooks/exhaustive-deps
57 // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -62,13 +66,12 @@ export const useWalletConnect = () => {
62 connector.createSession();
66 connector.createSession();
65− const disconnect = () => {
69+ const disconnect = async () => {
66 if (!connector) {
70 if (!connector) {
67− console.warn('Nothing to disconnect');
71− connector.killSession();
74+ await connector.killSession();
74 type AuthenticateArgs = {
77 type AuthenticateArgs = {
@@ -155,6 +158,17 @@ export const useWalletConnect = () => {
161+ const initModalClosedHandler = () => {
166+ connector.on('modal_closed', () => {
158 // Init and clean up
172 // Init and clean up
159 useEffect(() => {
173 useEffect(() => {
160 if (!connector) {
174 if (!connector) {
@@ -164,6 +178,7 @@ export const useWalletConnect = () => {
164 initConnectHandler();
178 initConnectHandler();
165 initDisconnectHandler();
179 initDisconnectHandler();
166 initSessionUpdateHandler();
180 initSessionUpdateHandler();
181+ initModalClosedHandler();
168 return () => {
183 return () => {
169 // Clean up listeners
184 // Clean up listeners
@@ -182,5 +197,6 @@ export const useWalletConnect = () => {
182 disconnect,
197 disconnect,
183 isConnected,
198 isConnected,
184 peerMeta,
199 peerMeta,