@tronweb3/tronwallet-adapter-react-hooks 1.1.12 → 1.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -61,6 +61,20 @@ const WalletProvider = function ({ children, adapters: adaptersPro = null, onErr
|
|
|
61
61
|
const [disconnecting, setDisconnecting] = (0, react_1.useState)(false);
|
|
62
62
|
const isConnecting = (0, react_1.useRef)(false);
|
|
63
63
|
const isDisconnecting = (0, react_1.useRef)(false);
|
|
64
|
+
/**
|
|
65
|
+
* `connect()`/`disconnect()` are awaited, so every state write in their `finally`
|
|
66
|
+
* happens on a later tick — by which time the provider may already be gone. React
|
|
67
|
+
* warns about the update, and under a test runner the DOM is torn down first and the
|
|
68
|
+
* update throws outright. The refs above are safe to write after unmount; the state
|
|
69
|
+
* setters are not.
|
|
70
|
+
*/
|
|
71
|
+
const isMounted = (0, react_1.useRef)(true);
|
|
72
|
+
(0, react_1.useEffect)(function () {
|
|
73
|
+
isMounted.current = true;
|
|
74
|
+
return function () {
|
|
75
|
+
isMounted.current = false;
|
|
76
|
+
};
|
|
77
|
+
}, []);
|
|
64
78
|
// set default supported adapters
|
|
65
79
|
const adapters = (0, react_1.useMemo)(() => {
|
|
66
80
|
if (adaptersPro === null) {
|
|
@@ -134,10 +148,16 @@ const WalletProvider = function ({ children, adapters: adaptersPro = null, onErr
|
|
|
134
148
|
return error;
|
|
135
149
|
}, [onError]);
|
|
136
150
|
const handleAccountChange = (0, react_1.useCallback)(function (address, preAddr) {
|
|
137
|
-
|
|
151
|
+
// Adapters report "no account" as an empty string, while this state uses `null`
|
|
152
|
+
// for it, so normalise before storing. The callback still gets the raw value.
|
|
153
|
+
setState((state) => { var _a; return (Object.assign(Object.assign({}, state), { address: address || null, connected: !!((_a = state.adapter) === null || _a === void 0 ? void 0 : _a.connected) })); });
|
|
138
154
|
onAccountsChanged === null || onAccountsChanged === void 0 ? void 0 : onAccountsChanged(address, preAddr);
|
|
139
155
|
}, [onAccountsChanged]);
|
|
140
156
|
const handleDisconnect = (0, react_1.useCallback)(function () {
|
|
157
|
+
setState((state) => {
|
|
158
|
+
var _a, _b, _c;
|
|
159
|
+
return (Object.assign(Object.assign({}, state), { address: (_b = (_a = state.adapter) === null || _a === void 0 ? void 0 : _a.address) !== null && _b !== void 0 ? _b : null, connected: !!((_c = state.adapter) === null || _c === void 0 ? void 0 : _c.connected) }));
|
|
160
|
+
});
|
|
141
161
|
onDisconnect === null || onDisconnect === void 0 ? void 0 : onDisconnect();
|
|
142
162
|
}, [onDisconnect]);
|
|
143
163
|
const handleReadyStateChanged = (0, react_1.useCallback)(function (readyState) {
|
|
@@ -175,7 +195,13 @@ const WalletProvider = function ({ children, adapters: adaptersPro = null, onErr
|
|
|
175
195
|
// disconnect the previous when wallet changes
|
|
176
196
|
(0, react_1.useEffect)(() => {
|
|
177
197
|
return () => {
|
|
178
|
-
|
|
198
|
+
// Cleanup cannot await, so the rejection has to be handled here or it surfaces as
|
|
199
|
+
// an unhandled one. The listeners are already off by this point, so a failure means
|
|
200
|
+
// the old adapter may still be connected with nothing watching it -- worth a warning
|
|
201
|
+
// even though there is nothing left to retry against.
|
|
202
|
+
adapter === null || adapter === void 0 ? void 0 : adapter.disconnect().catch((error) => {
|
|
203
|
+
console.warn(`[${adapter.name}]: Failed to disconnect the previous wallet.`, error);
|
|
204
|
+
});
|
|
179
205
|
};
|
|
180
206
|
}, [adapter]);
|
|
181
207
|
const hasManuallySetName = (0, react_1.useRef)(false);
|
|
@@ -196,8 +222,9 @@ const WalletProvider = function ({ children, adapters: adaptersPro = null, onErr
|
|
|
196
222
|
// setName(null);
|
|
197
223
|
}
|
|
198
224
|
finally {
|
|
199
|
-
setConnecting(false);
|
|
200
225
|
isConnecting.current = false;
|
|
226
|
+
if (isMounted.current)
|
|
227
|
+
setConnecting(false);
|
|
201
228
|
}
|
|
202
229
|
});
|
|
203
230
|
})();
|
|
@@ -223,8 +250,9 @@ const WalletProvider = function ({ children, adapters: adaptersPro = null, onErr
|
|
|
223
250
|
throw error;
|
|
224
251
|
}
|
|
225
252
|
finally {
|
|
226
|
-
setConnecting(false);
|
|
227
253
|
isConnecting.current = false;
|
|
254
|
+
if (isMounted.current)
|
|
255
|
+
setConnecting(false);
|
|
228
256
|
}
|
|
229
257
|
});
|
|
230
258
|
}, [isConnecting, isDisconnecting, adapter, connected, handleError, setName]);
|
|
@@ -245,8 +273,9 @@ const WalletProvider = function ({ children, adapters: adaptersPro = null, onErr
|
|
|
245
273
|
throw error;
|
|
246
274
|
}
|
|
247
275
|
finally {
|
|
248
|
-
setDisconnecting(false);
|
|
249
276
|
isDisconnecting.current = false;
|
|
277
|
+
if (isMounted.current)
|
|
278
|
+
setDisconnecting(false);
|
|
250
279
|
}
|
|
251
280
|
});
|
|
252
281
|
}, [adapter, isDisconnecting, setName]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalletProvider.js","sourceRoot":"","sources":["../../src/WalletProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uFAA+E;AAQ/E,uFAAwE;AAExE,+CAAiF;AAEjF,iDAA+C;AAC/C,6DAAuD;AAiBvD,MAAM,YAAY,GAKd;IACA,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,KAAK;IAChB,OAAO,EAAE,IAAI;CAChB,CAAC;AAEK,MAAM,cAAc,GAA4B,UAAU,EAC7D,QAAQ,EACR,QAAQ,EAAE,WAAW,GAAG,IAAI,EAC5B,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EACzC,mBAAmB,EACnB,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,eAAe,GAAG,iBAAiB,EACnC,WAAW,GAAG,IAAI,EAClB,wBAAwB,GAAG,KAAK,GACnC;IACG,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,oCAAe,EAAqB,eAAe,EAAE,IAAI,CAAC,CAAC;IACnF,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,YAAY,CAAC,CAAC;IACnF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC;IACnC,MAAM,eAAe,GAAG,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"WalletProvider.js","sourceRoot":"","sources":["../../src/WalletProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uFAA+E;AAQ/E,uFAAwE;AAExE,+CAAiF;AAEjF,iDAA+C;AAC/C,6DAAuD;AAiBvD,MAAM,YAAY,GAKd;IACA,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,KAAK;IAChB,OAAO,EAAE,IAAI;CAChB,CAAC;AAEK,MAAM,cAAc,GAA4B,UAAU,EAC7D,QAAQ,EACR,QAAQ,EAAE,WAAW,GAAG,IAAI,EAC5B,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EACzC,mBAAmB,EACnB,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,eAAe,GAAG,iBAAiB,EACnC,WAAW,GAAG,IAAI,EAClB,wBAAwB,GAAG,KAAK,GACnC;IACG,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,oCAAe,EAAqB,eAAe,EAAE,IAAI,CAAC,CAAC;IACnF,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,YAAY,CAAC,CAAC;IACnF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC;IACnC,MAAM,eAAe,GAAG,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC;IACtC;;;;;;OAMG;IACH,MAAM,SAAS,GAAG,IAAA,cAAM,EAAC,IAAI,CAAC,CAAC;IAC/B,IAAA,iBAAS,EAAC;QACN,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;QACzB,OAAO;YACH,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC;QAC9B,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,iCAAiC;IACjC,MAAM,QAAQ,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC1B,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,6CAAe,EAAE,CAAC,CAAC;QACnC,CAAC;QACD,OAAO,WAAW,CAAC;IACvB,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IAClB,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,EAAW,GAAG,EAAE,CAClD,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACvB,OAAO;QACP,KAAK,EAAE,OAAO,CAAC,KAAK;KACvB,CAAC,CAAC,CACN,CAAC;IACF,IAAA,iBAAS,EACL;QACI,UAAU,CAAC,CAAC,WAAW,EAAE,EAAE,CACvB,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YAC5B,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YAClC,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC;gBACzE,OAAO,MAAM,CAAC;YAClB,CAAC;YACD,OAAO;gBACH,OAAO;gBACP,KAAK,EAAE,OAAO,CAAC,KAAK;aACvB,CAAC;QACN,CAAC,CAAC,CACL,CAAC;QAEF,SAAS,iBAAiB;YACtB,UAAU,CAAC,CAAC,WAAW,EAAE,EAAE;gBACvB,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;gBACzE,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;oBACf,OAAO,WAAW,CAAC;gBACvB,CAAC;gBACD,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;oBACnC,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;wBAChB,uCACO,MAAM,KACT,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,IAC7B;oBACN,CAAC;oBACD,OAAO,MAAM,CAAC;gBAClB,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACP,CAAC;QACD,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,cAAc,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC,CAAC;QACtF,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC,CAAC;IACxG,CAAC,EACD,CAAC,QAAQ,CAAC,CACb,CAAC;IAEF,wCAAwC;IACxC,IAAA,iBAAS,EACL;QACI,MAAM,MAAM,GAAG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAC1E,IAAI,MAAM,EAAE,CAAC;YACT,QAAQ,CAAC;gBACL,MAAM;gBACN,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS;gBACnC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,OAAO;aAClC,CAAC,CAAC;QACP,CAAC;aAAM,CAAC;YACJ,QAAQ,CAAC,YAAY,CAAC,CAAC;QAC3B,CAAC;IACL,CAAC,EACD,CAAC,IAAI,EAAE,OAAO,CAAC,CAClB,CAAC;IAEF,MAAM,UAAU,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAC;IAChD,IAAA,iBAAS,EACL;QACI,IAAI,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC;YACjC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAG,OAAO,CAAC,CAAC;YAC5B,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;QACjC,CAAC;IACL,CAAC,EACD,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAC9B,CAAC;IAEF,MAAM,aAAa,GAAG,IAAA,mBAAW,EAC7B,UAAU,IAAY;QAClB,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QACD,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iCACb,KAAK,KACR,SAAS,EAAE,OAAO,CAAC,SAAS,EAC5B,OAAO,EAAE,OAAO,CAAC,OAAO,IAC1B,CAAC,CAAC;QACJ,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAG,IAAI,CAAC,CAAC;IACtB,CAAC,EACD,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAChC,CAAC;IAEF,MAAM,WAAW,GAAG,IAAA,mBAAW,EAC3B,UAAU,KAAkB;QACxB,OAAO,CAAC,KAAK,CAAC,CAAC;QACf,OAAO,KAAK,CAAC;IACjB,CAAC,EACD,CAAC,OAAO,CAAC,CACZ,CAAC;IACF,MAAM,mBAAmB,GAAG,IAAA,mBAAW,EACnC,UAAU,OAAe,EAAE,OAAgB;QACvC,gFAAgF;QAChF,8EAA8E;QAC9E,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE,WAAC,OAAA,iCAAM,KAAK,KAAE,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,SAAS,CAAA,IAAG,CAAA,EAAA,CAAC,CAAC;QACrG,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAG,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC,EACD,CAAC,iBAAiB,CAAC,CACtB,CAAC;IACF,MAAM,gBAAgB,GAAG,IAAA,mBAAW,EAChC;QACI,QAAQ,CAAC,CAAC,KAAK,EAAE,EAAE;;YAAC,OAAA,iCACb,KAAK,KACR,OAAO,EAAE,MAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,OAAO,mCAAI,IAAI,EACvC,SAAS,EAAE,CAAC,CAAC,CAAA,MAAA,KAAK,CAAC,OAAO,0CAAE,SAAS,CAAA,IACvC,CAAA;SAAA,CAAC,CAAC;QACJ,YAAY,aAAZ,YAAY,uBAAZ,YAAY,EAAI,CAAC;IACrB,CAAC,EACD,CAAC,YAAY,CAAC,CACjB,CAAC;IACF,MAAM,uBAAuB,GAAG,IAAA,mBAAW,EACvC,UAAU,UAA4B;QAClC,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAG,UAAU,CAAC,CAAC;IACtC,CAAC,EACD,CAAC,mBAAmB,CAAC,CACxB,CAAC;IACF,MAAM,kBAAkB,GAAG,IAAA,mBAAW,EAClC,UAAU,SAAkB;QACxB,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAG,SAAS,CAAC,CAAC;IAChC,CAAC,EACD,CAAC,cAAc,CAAC,CACnB,CAAC;IACF,IAAA,iBAAS,EACL;QACI,IAAI,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;YACrC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YACjC,OAAO,CAAC,EAAE,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;YACnD,OAAO,CAAC,EAAE,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAC/C,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,uBAAuB,CAAC,CAAC;YACzD,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;YAC3C,OAAO,GAAG,EAAE;gBACR,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;gBAClC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;gBACpD,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;gBAChD,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,uBAAuB,CAAC,CAAC;gBAC1D,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;YAChD,CAAC,CAAC;QACN,CAAC;IACL,CAAC,EACD;QACI,OAAO;QACP,aAAa;QACb,WAAW;QACX,mBAAmB;QACnB,kBAAkB;QAClB,uBAAuB;QACvB,gBAAgB;KACnB,CACJ,CAAC;IACF,8CAA8C;IAC9C,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,OAAO,GAAG,EAAE;YACR,kFAAkF;YAClF,oFAAoF;YACpF,qFAAqF;YACrF,sDAAsD;YACtD,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,GAAG,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBAClC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,8CAA8C,EAAE,KAAK,CAAC,CAAC;YACxF,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;IACN,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,MAAM,kBAAkB,GAAG,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC;IACzC,eAAe;IACf,IAAA,iBAAS,EACL;QACI,MAAM,cAAc,GAAG,WAAW,IAAI,CAAC,CAAC,wBAAwB,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAChG,IAAI,YAAY,CAAC,OAAO,IAAI,CAAC,cAAc,IAAI,CAAC,OAAO,EAAE,CAAC;YACtD,OAAO;QACX,CAAC;QACD,CAAC,SAAe,OAAO;;gBACnB,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;gBAC5B,aAAa,CAAC,IAAI,CAAC,CAAC;gBACpB,IAAI,CAAC;oBACD,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC5B,CAAC;gBAAC,WAAM,CAAC;oBACL,iBAAiB;gBACrB,CAAC;wBAAS,CAAC;oBACP,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;oBAC7B,IAAI,SAAS,CAAC,OAAO;wBAAE,aAAa,CAAC,KAAK,CAAC,CAAC;gBAChD,CAAC;YACL,CAAC;SAAA,CAAC,EAAE,CAAC;IACT,CAAC,EACD,CAAC,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,wBAAwB,CAAC,CAC1E,CAAC;IACF,MAAM,MAAM,GAAG,IAAA,mBAAW,EACtB,CAAC,IAAiB,EAAE,EAAE;QAClB,kBAAkB,CAAC,OAAO,GAAG,IAAI,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,CAAC;IAClB,CAAC,EACD,CAAC,OAAO,CAAC,CACZ,CAAC;IAEF,MAAM,OAAO,GAAG,IAAA,mBAAW,EACvB;;YACI,IAAI,YAAY,CAAC,OAAO,IAAI,eAAe,CAAC,OAAO,IAAI,SAAS,EAAE,CAAC;gBAC/D,OAAO;YACX,CAAC;YACD,IAAI,CAAC,OAAO;gBAAE,MAAM,WAAW,CAAC,IAAI,oDAAsB,EAAE,CAAC,CAAC;YAC9D,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC;YAC5B,aAAa,CAAC,IAAI,CAAC,CAAC;YACpB,IAAI,CAAC;gBACD,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YAC5B,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACtB,OAAO,CAAC,IAAI,CAAC,CAAC;gBACd,MAAM,KAAK,CAAC;YAChB,CAAC;oBAAS,CAAC;gBACP,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC;gBAC7B,IAAI,SAAS,CAAC,OAAO;oBAAE,aAAa,CAAC,KAAK,CAAC,CAAC;YAChD,CAAC;QACL,CAAC;KAAA,EACD,CAAC,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,CAAC,CAC5E,CAAC;IAEF,MAAM,UAAU,GAAG,IAAA,mBAAW,EAC1B;;YACI,IAAI,eAAe,CAAC,OAAO;gBAAE,OAAO;YACpC,IAAI,CAAC,OAAO;gBAAE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;YAEnC,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;YAC/B,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACvB,IAAI,CAAC;gBACD,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC3B,OAAO,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBAClB,OAAO,CAAC,IAAI,CAAC,CAAC;gBACd,MAAM,KAAK,CAAC;YAChB,CAAC;oBAAS,CAAC;gBACP,eAAe,CAAC,OAAO,GAAG,KAAK,CAAC;gBAChC,IAAI,SAAS,CAAC,OAAO;oBAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC;YACnD,CAAC;QACL,CAAC;KAAA,EACD,CAAC,OAAO,EAAE,eAAe,EAAE,OAAO,CAAC,CACtC,CAAC;IAEF,MAAM,eAAe,GAAG,IAAA,mBAAW,EAC/B,UAAgB,WAAwB;;YACpC,IAAI,CAAC,OAAO;gBAAE,MAAM,WAAW,CAAC,IAAI,oDAAsB,EAAE,CAAC,CAAC;YAC9D,OAAO,MAAM,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACtD,CAAC;KAAA,EACD,CAAC,OAAO,EAAE,WAAW,CAAC,CACzB,CAAC;IAEF,MAAM,WAAW,GAAG,IAAA,mBAAW,EAC3B,UAAgB,OAAe;;YAC3B,IAAI,CAAC,OAAO;gBAAE,MAAM,WAAW,CAAC,IAAI,oDAAsB,EAAE,CAAC,CAAC;YAC9D,OAAO,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;KAAA,EACD,CAAC,OAAO,EAAE,WAAW,CAAC,CACzB,CAAC;IAEF,OAAO,CACH,8BAAC,4BAAa,CAAC,QAAQ,IACnB,KAAK,EAAE;YACH,wBAAwB;YACxB,WAAW;YACX,OAAO;YACP,MAAM;YACN,OAAO;YACP,UAAU;YACV,SAAS;YACT,aAAa;YAEb,MAAM;YACN,OAAO;YACP,UAAU;YACV,eAAe;YACf,WAAW;SACd,IAEA,QAAQ,CACY,CAC5B,CAAC;AACN,CAAC,CAAC;AAlUW,QAAA,cAAc,kBAkUzB"}
|
|
@@ -25,6 +25,20 @@ export const WalletProvider = function ({ children, adapters: adaptersPro = null
|
|
|
25
25
|
const [disconnecting, setDisconnecting] = useState(false);
|
|
26
26
|
const isConnecting = useRef(false);
|
|
27
27
|
const isDisconnecting = useRef(false);
|
|
28
|
+
/**
|
|
29
|
+
* `connect()`/`disconnect()` are awaited, so every state write in their `finally`
|
|
30
|
+
* happens on a later tick — by which time the provider may already be gone. React
|
|
31
|
+
* warns about the update, and under a test runner the DOM is torn down first and the
|
|
32
|
+
* update throws outright. The refs above are safe to write after unmount; the state
|
|
33
|
+
* setters are not.
|
|
34
|
+
*/
|
|
35
|
+
const isMounted = useRef(true);
|
|
36
|
+
useEffect(function () {
|
|
37
|
+
isMounted.current = true;
|
|
38
|
+
return function () {
|
|
39
|
+
isMounted.current = false;
|
|
40
|
+
};
|
|
41
|
+
}, []);
|
|
28
42
|
// set default supported adapters
|
|
29
43
|
const adapters = useMemo(() => {
|
|
30
44
|
if (adaptersPro === null) {
|
|
@@ -98,10 +112,16 @@ export const WalletProvider = function ({ children, adapters: adaptersPro = null
|
|
|
98
112
|
return error;
|
|
99
113
|
}, [onError]);
|
|
100
114
|
const handleAccountChange = useCallback(function (address, preAddr) {
|
|
101
|
-
|
|
115
|
+
// Adapters report "no account" as an empty string, while this state uses `null`
|
|
116
|
+
// for it, so normalise before storing. The callback still gets the raw value.
|
|
117
|
+
setState((state) => { var _a; return (Object.assign(Object.assign({}, state), { address: address || null, connected: !!((_a = state.adapter) === null || _a === void 0 ? void 0 : _a.connected) })); });
|
|
102
118
|
onAccountsChanged === null || onAccountsChanged === void 0 ? void 0 : onAccountsChanged(address, preAddr);
|
|
103
119
|
}, [onAccountsChanged]);
|
|
104
120
|
const handleDisconnect = useCallback(function () {
|
|
121
|
+
setState((state) => {
|
|
122
|
+
var _a, _b, _c;
|
|
123
|
+
return (Object.assign(Object.assign({}, state), { address: (_b = (_a = state.adapter) === null || _a === void 0 ? void 0 : _a.address) !== null && _b !== void 0 ? _b : null, connected: !!((_c = state.adapter) === null || _c === void 0 ? void 0 : _c.connected) }));
|
|
124
|
+
});
|
|
105
125
|
onDisconnect === null || onDisconnect === void 0 ? void 0 : onDisconnect();
|
|
106
126
|
}, [onDisconnect]);
|
|
107
127
|
const handleReadyStateChanged = useCallback(function (readyState) {
|
|
@@ -139,7 +159,13 @@ export const WalletProvider = function ({ children, adapters: adaptersPro = null
|
|
|
139
159
|
// disconnect the previous when wallet changes
|
|
140
160
|
useEffect(() => {
|
|
141
161
|
return () => {
|
|
142
|
-
|
|
162
|
+
// Cleanup cannot await, so the rejection has to be handled here or it surfaces as
|
|
163
|
+
// an unhandled one. The listeners are already off by this point, so a failure means
|
|
164
|
+
// the old adapter may still be connected with nothing watching it -- worth a warning
|
|
165
|
+
// even though there is nothing left to retry against.
|
|
166
|
+
adapter === null || adapter === void 0 ? void 0 : adapter.disconnect().catch((error) => {
|
|
167
|
+
console.warn(`[${adapter.name}]: Failed to disconnect the previous wallet.`, error);
|
|
168
|
+
});
|
|
143
169
|
};
|
|
144
170
|
}, [adapter]);
|
|
145
171
|
const hasManuallySetName = useRef(false);
|
|
@@ -160,8 +186,9 @@ export const WalletProvider = function ({ children, adapters: adaptersPro = null
|
|
|
160
186
|
// setName(null);
|
|
161
187
|
}
|
|
162
188
|
finally {
|
|
163
|
-
setConnecting(false);
|
|
164
189
|
isConnecting.current = false;
|
|
190
|
+
if (isMounted.current)
|
|
191
|
+
setConnecting(false);
|
|
165
192
|
}
|
|
166
193
|
});
|
|
167
194
|
})();
|
|
@@ -187,8 +214,9 @@ export const WalletProvider = function ({ children, adapters: adaptersPro = null
|
|
|
187
214
|
throw error;
|
|
188
215
|
}
|
|
189
216
|
finally {
|
|
190
|
-
setConnecting(false);
|
|
191
217
|
isConnecting.current = false;
|
|
218
|
+
if (isMounted.current)
|
|
219
|
+
setConnecting(false);
|
|
192
220
|
}
|
|
193
221
|
});
|
|
194
222
|
}, [isConnecting, isDisconnecting, adapter, connected, handleError, setName]);
|
|
@@ -209,8 +237,9 @@ export const WalletProvider = function ({ children, adapters: adaptersPro = null
|
|
|
209
237
|
throw error;
|
|
210
238
|
}
|
|
211
239
|
finally {
|
|
212
|
-
setDisconnecting(false);
|
|
213
240
|
isDisconnecting.current = false;
|
|
241
|
+
if (isMounted.current)
|
|
242
|
+
setDisconnecting(false);
|
|
214
243
|
}
|
|
215
244
|
});
|
|
216
245
|
}, [adapter, isDisconnecting, setName]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalletProvider.js","sourceRoot":"","sources":["../../src/WalletProvider.tsx"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAQ/E,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAExE,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjF,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAiBvD,MAAM,YAAY,GAKd;IACA,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,KAAK;IAChB,OAAO,EAAE,IAAI;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAA4B,UAAU,EAC7D,QAAQ,EACR,QAAQ,EAAE,WAAW,GAAG,IAAI,EAC5B,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EACzC,mBAAmB,EACnB,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,eAAe,GAAG,iBAAiB,EACnC,WAAW,GAAG,IAAI,EAClB,wBAAwB,GAAG,KAAK,GACnC;IACG,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,eAAe,CAAqB,eAAe,EAAE,IAAI,CAAC,CAAC;IACnF,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IACnF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"WalletProvider.js","sourceRoot":"","sources":["../../src/WalletProvider.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalletProvider.d.ts","sourceRoot":"","sources":["../../src/WalletProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,OAAO,EACP,WAAW,EAGX,gBAAgB,EACnB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAM3C,MAAM,WAAW,mBAAmB;IAChC,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IACnE,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,OAAO,CAAC;IAC3D,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,OAAO,CAAC;IACjD,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,KAAK,OAAO,CAAC;IACxD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACtC;AAcD,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,
|
|
1
|
+
{"version":3,"file":"WalletProvider.d.ts","sourceRoot":"","sources":["../../src/WalletProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,OAAO,EACP,WAAW,EAGX,gBAAgB,EACnB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAM3C,MAAM,WAAW,mBAAmB;IAChC,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IACnE,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,OAAO,CAAC;IAC3D,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,OAAO,CAAC;IACjD,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,KAAK,OAAO,CAAC;IACxD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACtC;AAcD,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC,mBAAmB,CAkUlD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,65 +1,65 @@
|
|
|
1
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
|
-
}
|
|
2
|
+
"name": "@tronweb3/tronwallet-adapter-react-hooks",
|
|
3
|
+
"version": "1.1.14",
|
|
4
|
+
"description": "A `useWallet()` hook to make it easy to interact with Tron wallets.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"TRON",
|
|
7
|
+
"TronWeb",
|
|
8
|
+
"adapter"
|
|
9
|
+
],
|
|
10
|
+
"author": "tronweb3",
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "https://github.com/tronweb3/tronwallet-adapter"
|
|
14
|
+
},
|
|
15
|
+
"license": "MIT",
|
|
16
|
+
"type": "module",
|
|
17
|
+
"sideEffects": false,
|
|
18
|
+
"engines": {
|
|
19
|
+
"node": ">=16",
|
|
20
|
+
"pnpm": ">=7"
|
|
21
|
+
},
|
|
22
|
+
"main": "./lib/cjs/index.js",
|
|
23
|
+
"module": "./lib/esm/index.js",
|
|
24
|
+
"types": "./lib/types/index.d.ts",
|
|
25
|
+
"exports": {
|
|
26
|
+
"require": "./lib/cjs/index.js",
|
|
27
|
+
"import": "./lib/esm/index.js",
|
|
28
|
+
"types": "./lib/types/index.d.ts"
|
|
29
|
+
},
|
|
30
|
+
"files": [
|
|
31
|
+
"lib",
|
|
32
|
+
"src",
|
|
33
|
+
"LICENSE"
|
|
34
|
+
],
|
|
35
|
+
"publishConfig": {
|
|
36
|
+
"access": "public"
|
|
37
|
+
},
|
|
38
|
+
"scripts": {
|
|
39
|
+
"clean": "shx mkdir -p lib && shx rm -rf lib",
|
|
40
|
+
"package": "shx echo '{ \"type\": \"commonjs\" }' > lib/cjs/package.json",
|
|
41
|
+
"test": "vitest run"
|
|
42
|
+
},
|
|
43
|
+
"peerDependencies": {
|
|
44
|
+
"react": "*",
|
|
45
|
+
"react-dom": "*"
|
|
46
|
+
},
|
|
47
|
+
"dependencies": {
|
|
48
|
+
"@tronweb3/tronwallet-abstract-adapter": "^1.3.0",
|
|
49
|
+
"@tronweb3/tronwallet-adapter-tronlink": "^1.3.0"
|
|
50
|
+
},
|
|
51
|
+
"devDependencies": {
|
|
52
|
+
"@testing-library/react": "16.3.2",
|
|
53
|
+
"@types/react": "18.3.3",
|
|
54
|
+
"@types/react-dom": "18.3.0",
|
|
55
|
+
"@vitejs/plugin-react": "5.2.0",
|
|
56
|
+
"@vitest/browser": "3.2.4",
|
|
57
|
+
"@vitest/ui": "3.2.4",
|
|
58
|
+
"eventemitter3": "5.0.4",
|
|
59
|
+
"happy-dom": "20.8.9",
|
|
60
|
+
"react": "18.3.1",
|
|
61
|
+
"react-dom": "18.3.1",
|
|
62
|
+
"shx": "0.3.4",
|
|
63
|
+
"vitest": "3.2.4"
|
|
64
|
+
}
|
|
65
|
+
}
|
package/src/WalletProvider.tsx
CHANGED
|
@@ -60,6 +60,20 @@ export const WalletProvider: FC<WalletProviderProps> = function ({
|
|
|
60
60
|
const [disconnecting, setDisconnecting] = useState(false);
|
|
61
61
|
const isConnecting = useRef(false);
|
|
62
62
|
const isDisconnecting = useRef(false);
|
|
63
|
+
/**
|
|
64
|
+
* `connect()`/`disconnect()` are awaited, so every state write in their `finally`
|
|
65
|
+
* happens on a later tick — by which time the provider may already be gone. React
|
|
66
|
+
* warns about the update, and under a test runner the DOM is torn down first and the
|
|
67
|
+
* update throws outright. The refs above are safe to write after unmount; the state
|
|
68
|
+
* setters are not.
|
|
69
|
+
*/
|
|
70
|
+
const isMounted = useRef(true);
|
|
71
|
+
useEffect(function () {
|
|
72
|
+
isMounted.current = true;
|
|
73
|
+
return function () {
|
|
74
|
+
isMounted.current = false;
|
|
75
|
+
};
|
|
76
|
+
}, []);
|
|
63
77
|
|
|
64
78
|
// set default supported adapters
|
|
65
79
|
const adapters = useMemo(() => {
|
|
@@ -165,13 +179,20 @@ export const WalletProvider: FC<WalletProviderProps> = function ({
|
|
|
165
179
|
);
|
|
166
180
|
const handleAccountChange = useCallback(
|
|
167
181
|
function (address: string, preAddr?: string) {
|
|
168
|
-
|
|
182
|
+
// Adapters report "no account" as an empty string, while this state uses `null`
|
|
183
|
+
// for it, so normalise before storing. The callback still gets the raw value.
|
|
184
|
+
setState((state) => ({ ...state, address: address || null, connected: !!state.adapter?.connected }));
|
|
169
185
|
onAccountsChanged?.(address, preAddr);
|
|
170
186
|
},
|
|
171
187
|
[onAccountsChanged]
|
|
172
188
|
);
|
|
173
189
|
const handleDisconnect = useCallback(
|
|
174
190
|
function () {
|
|
191
|
+
setState((state) => ({
|
|
192
|
+
...state,
|
|
193
|
+
address: state.adapter?.address ?? null,
|
|
194
|
+
connected: !!state.adapter?.connected,
|
|
195
|
+
}));
|
|
175
196
|
onDisconnect?.();
|
|
176
197
|
},
|
|
177
198
|
[onDisconnect]
|
|
@@ -220,7 +241,13 @@ export const WalletProvider: FC<WalletProviderProps> = function ({
|
|
|
220
241
|
// disconnect the previous when wallet changes
|
|
221
242
|
useEffect(() => {
|
|
222
243
|
return () => {
|
|
223
|
-
|
|
244
|
+
// Cleanup cannot await, so the rejection has to be handled here or it surfaces as
|
|
245
|
+
// an unhandled one. The listeners are already off by this point, so a failure means
|
|
246
|
+
// the old adapter may still be connected with nothing watching it -- worth a warning
|
|
247
|
+
// even though there is nothing left to retry against.
|
|
248
|
+
adapter?.disconnect().catch((error) => {
|
|
249
|
+
console.warn(`[${adapter.name}]: Failed to disconnect the previous wallet.`, error);
|
|
250
|
+
});
|
|
224
251
|
};
|
|
225
252
|
}, [adapter]);
|
|
226
253
|
|
|
@@ -240,8 +267,8 @@ export const WalletProvider: FC<WalletProviderProps> = function ({
|
|
|
240
267
|
} catch {
|
|
241
268
|
// setName(null);
|
|
242
269
|
} finally {
|
|
243
|
-
setConnecting(false);
|
|
244
270
|
isConnecting.current = false;
|
|
271
|
+
if (isMounted.current) setConnecting(false);
|
|
245
272
|
}
|
|
246
273
|
})();
|
|
247
274
|
},
|
|
@@ -269,8 +296,8 @@ export const WalletProvider: FC<WalletProviderProps> = function ({
|
|
|
269
296
|
setName(null);
|
|
270
297
|
throw error;
|
|
271
298
|
} finally {
|
|
272
|
-
setConnecting(false);
|
|
273
299
|
isConnecting.current = false;
|
|
300
|
+
if (isMounted.current) setConnecting(false);
|
|
274
301
|
}
|
|
275
302
|
},
|
|
276
303
|
[isConnecting, isDisconnecting, adapter, connected, handleError, setName]
|
|
@@ -290,8 +317,8 @@ export const WalletProvider: FC<WalletProviderProps> = function ({
|
|
|
290
317
|
setName(null);
|
|
291
318
|
throw error;
|
|
292
319
|
} finally {
|
|
293
|
-
setDisconnecting(false);
|
|
294
320
|
isDisconnecting.current = false;
|
|
321
|
+
if (isMounted.current) setDisconnecting(false);
|
|
295
322
|
}
|
|
296
323
|
},
|
|
297
324
|
[adapter, isDisconnecting, setName]
|