@ledgerhq/live-common 34.54.0-nightly.20251127023715 → 34.54.0-nightly.20251127103328
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.
- package/lib/hooks/useAccountsWithFundsListener.d.ts +1 -1
- package/lib/hooks/useAccountsWithFundsListener.d.ts.map +1 -1
- package/lib/hooks/useAccountsWithFundsListener.js +2 -1
- package/lib/hooks/useAccountsWithFundsListener.js.map +1 -1
- package/lib/postOnboarding/hooks/index.d.ts +1 -0
- package/lib/postOnboarding/hooks/index.d.ts.map +1 -1
- package/lib/postOnboarding/hooks/index.js +1 -0
- package/lib/postOnboarding/hooks/index.js.map +1 -1
- package/lib/postOnboarding/hooks/useCheckAccountWithFundsAction.d.ts +3 -0
- package/lib/postOnboarding/hooks/useCheckAccountWithFundsAction.d.ts.map +1 -0
- package/lib/postOnboarding/hooks/useCheckAccountWithFundsAction.js +21 -0
- package/lib/postOnboarding/hooks/useCheckAccountWithFundsAction.js.map +1 -0
- package/lib-es/hooks/useAccountsWithFundsListener.d.ts +1 -1
- package/lib-es/hooks/useAccountsWithFundsListener.d.ts.map +1 -1
- package/lib-es/hooks/useAccountsWithFundsListener.js +2 -1
- package/lib-es/hooks/useAccountsWithFundsListener.js.map +1 -1
- package/lib-es/postOnboarding/hooks/index.d.ts +1 -0
- package/lib-es/postOnboarding/hooks/index.d.ts.map +1 -1
- package/lib-es/postOnboarding/hooks/index.js +1 -0
- package/lib-es/postOnboarding/hooks/index.js.map +1 -1
- package/lib-es/postOnboarding/hooks/useCheckAccountWithFundsAction.d.ts +3 -0
- package/lib-es/postOnboarding/hooks/useCheckAccountWithFundsAction.d.ts.map +1 -0
- package/lib-es/postOnboarding/hooks/useCheckAccountWithFundsAction.js +17 -0
- package/lib-es/postOnboarding/hooks/useCheckAccountWithFundsAction.js.map +1 -0
- package/package.json +53 -53
- package/src/hooks/useAccountsWithFundsListener.ts +2 -0
- package/src/postOnboarding/hooks/index.ts +1 -0
- package/src/postOnboarding/hooks/useCheckAccountWithFundsAction.test.ts +99 -0
- package/src/postOnboarding/hooks/useCheckAccountWithFundsAction.ts +24 -0
|
@@ -10,6 +10,6 @@ export declare function hasAccountsWithFundsChanged(accounts: Account[], oldAcco
|
|
|
10
10
|
* Watches for changes in the accounts with funds (see comment on the function above for more details) and it triggers
|
|
11
11
|
* the callback function when a change occurs.
|
|
12
12
|
*/
|
|
13
|
-
declare function useAccountsWithFundsListener(accounts: Account[], callback: () => void, debounceTimer?: number): void;
|
|
13
|
+
declare function useAccountsWithFundsListener(accounts: Account[], callback: () => void, callbackForAccounts: (accounts: Account[]) => void, debounceTimer?: number): void;
|
|
14
14
|
export default useAccountsWithFundsListener;
|
|
15
15
|
//# sourceMappingURL=useAccountsWithFundsListener.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAccountsWithFundsListener.d.ts","sourceRoot":"","sources":["../../src/hooks/useAccountsWithFundsListener.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,OAAO,CAqChG;AAED;;;GAGG;AACH,iBAAS,4BAA4B,CACnC,QAAQ,EAAE,OAAO,EAAE,EACnB,QAAQ,EAAE,MAAM,IAAI,EACpB,aAAa,GAAE,MAAa,
|
|
1
|
+
{"version":3,"file":"useAccountsWithFundsListener.d.ts","sourceRoot":"","sources":["../../src/hooks/useAccountsWithFundsListener.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,OAAO,CAqChG;AAED;;;GAGG;AACH,iBAAS,4BAA4B,CACnC,QAAQ,EAAE,OAAO,EAAE,EACnB,QAAQ,EAAE,MAAM,IAAI,EACpB,mBAAmB,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,IAAI,EAClD,aAAa,GAAE,MAAa,QAiB7B;AAED,eAAe,4BAA4B,CAAC"}
|
|
@@ -50,12 +50,13 @@ exports.hasAccountsWithFundsChanged = hasAccountsWithFundsChanged;
|
|
|
50
50
|
* Watches for changes in the accounts with funds (see comment on the function above for more details) and it triggers
|
|
51
51
|
* the callback function when a change occurs.
|
|
52
52
|
*/
|
|
53
|
-
function useAccountsWithFundsListener(accounts, callback, debounceTimer = 3000) {
|
|
53
|
+
function useAccountsWithFundsListener(accounts, callback, callbackForAccounts, debounceTimer = 3000) {
|
|
54
54
|
const oldAccounts = (0, react_1.useRef)([]);
|
|
55
55
|
const debouncedUseEffect = (0, react_1.useMemo)(() => (0, debounce_1.default)(() => {
|
|
56
56
|
if (hasAccountsWithFundsChanged(accounts, oldAccounts.current)) {
|
|
57
57
|
callback();
|
|
58
58
|
}
|
|
59
|
+
callbackForAccounts(accounts);
|
|
59
60
|
oldAccounts.current = accounts;
|
|
60
61
|
}, debounceTimer), [accounts]);
|
|
61
62
|
(0, react_1.useEffect)(debouncedUseEffect, [debouncedUseEffect]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAccountsWithFundsListener.js","sourceRoot":"","sources":["../../src/hooks/useAccountsWithFundsListener.ts"],"names":[],"mappings":";;;;;;AAAA,iCAAmD;AACnD,+DAAuC;AAGvC;;;;;GAKG;AACH,SAAgB,2BAA2B,CAAC,QAAmB,EAAE,WAAsB;IACrF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC9B,MAAM,kBAAkB,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;QAE1E,oCAAoC;QACpC,IAAI,CAAC,kBAAkB,EAAE;YACvB,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;gBACpC,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,SAAS;aACV;SACF;QAED,uCAAuC;QACvC,MAAM,qBAAqB,GACzB,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,kBAAkB,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,uBAAuB,GAC3B,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,kBAAkB,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QAE5E,IAAI,qBAAqB,IAAI,uBAAuB,EAAE;YACpD,OAAO,IAAI,CAAC;SACb;KACF;IAED,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;QACpC,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,CAAC,CAAC;QAEvE,yCAAyC;QACzC,IAAI,CAAC,eAAe,EAAE;YACpB,IAAI,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;gBACvC,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,SAAS;aACV;SACF;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AArCD,kEAqCC;AAED;;;GAGG;AACH,SAAS,4BAA4B,CACnC,QAAmB,EACnB,QAAoB,EACpB,gBAAwB,IAAI;IAE5B,MAAM,WAAW,GAAG,IAAA,cAAM,EAAY,EAAE,CAAC,CAAC;IAE1C,MAAM,kBAAkB,GAAG,IAAA,eAAO,EAChC,GAAG,EAAE,CACH,IAAA,kBAAQ,EAAC,GAAG,EAAE;QACZ,IAAI,2BAA2B,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE;YAC9D,QAAQ,EAAE,CAAC;SACZ;QACD,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC,EAAE,aAAa,CAAC,EACnB,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,IAAA,iBAAS,EAAC,kBAAkB,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,kBAAe,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"useAccountsWithFundsListener.js","sourceRoot":"","sources":["../../src/hooks/useAccountsWithFundsListener.ts"],"names":[],"mappings":";;;;;;AAAA,iCAAmD;AACnD,+DAAuC;AAGvC;;;;;GAKG;AACH,SAAgB,2BAA2B,CAAC,QAAmB,EAAE,WAAsB;IACrF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC9B,MAAM,kBAAkB,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;QAE1E,oCAAoC;QACpC,IAAI,CAAC,kBAAkB,EAAE;YACvB,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;gBACpC,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,SAAS;aACV;SACF;QAED,uCAAuC;QACvC,MAAM,qBAAqB,GACzB,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,kBAAkB,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,uBAAuB,GAC3B,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,kBAAkB,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QAE5E,IAAI,qBAAqB,IAAI,uBAAuB,EAAE;YACpD,OAAO,IAAI,CAAC;SACb;KACF;IAED,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;QACpC,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,CAAC,CAAC;QAEvE,yCAAyC;QACzC,IAAI,CAAC,eAAe,EAAE;YACpB,IAAI,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;gBACvC,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,SAAS;aACV;SACF;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AArCD,kEAqCC;AAED;;;GAGG;AACH,SAAS,4BAA4B,CACnC,QAAmB,EACnB,QAAoB,EACpB,mBAAkD,EAClD,gBAAwB,IAAI;IAE5B,MAAM,WAAW,GAAG,IAAA,cAAM,EAAY,EAAE,CAAC,CAAC;IAE1C,MAAM,kBAAkB,GAAG,IAAA,eAAO,EAChC,GAAG,EAAE,CACH,IAAA,kBAAQ,EAAC,GAAG,EAAE;QACZ,IAAI,2BAA2B,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE;YAC9D,QAAQ,EAAE,CAAC;SACZ;QACD,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC9B,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC,EAAE,aAAa,CAAC,EACnB,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,IAAA,iBAAS,EAAC,kBAAkB,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,kBAAe,4BAA4B,CAAC"}
|
|
@@ -5,4 +5,5 @@ export * from "./usePostOnboardingHubState";
|
|
|
5
5
|
export * from "./useStartPostOnboardingCallback";
|
|
6
6
|
export * from "./useAutoDismissPostOnboardingEntryPoint";
|
|
7
7
|
export * from "./usePostOnboardingDeeplinkHandler";
|
|
8
|
+
export * from "./useCheckAccountWithFundsAction";
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,0CAA0C,CAAC;AACzD,cAAc,oCAAoC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,0CAA0C,CAAC;AACzD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC"}
|
|
@@ -21,4 +21,5 @@ __exportStar(require("./usePostOnboardingHubState"), exports);
|
|
|
21
21
|
__exportStar(require("./useStartPostOnboardingCallback"), exports);
|
|
22
22
|
__exportStar(require("./useAutoDismissPostOnboardingEntryPoint"), exports);
|
|
23
23
|
__exportStar(require("./usePostOnboardingDeeplinkHandler"), exports);
|
|
24
|
+
__exportStar(require("./useCheckAccountWithFundsAction"), exports);
|
|
24
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yEAAuD;AACvD,6DAA2C;AAC3C,+EAA6D;AAC7D,8DAA4C;AAC5C,mEAAiD;AACjD,2EAAyD;AACzD,qEAAmD"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yEAAuD;AACvD,6DAA2C;AAC3C,+EAA6D;AAC7D,8DAA4C;AAC5C,mEAAiD;AACjD,2EAAyD;AACzD,qEAAmD;AACnD,mEAAiD"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { Account, PostOnboardingActionId } from "@ledgerhq/types-live";
|
|
2
|
+
export declare function useCheckAccountWithFundsAction(completeAction: (action: PostOnboardingActionId) => void): (accounts: Account[]) => void;
|
|
3
|
+
//# sourceMappingURL=useCheckAccountWithFundsAction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCheckAccountWithFundsAction.d.ts","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/useCheckAccountWithFundsAction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAIvE,wBAAgB,8BAA8B,CAC5C,cAAc,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,IAAI,cAO3C,OAAO,EAAE,UAUvB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useCheckAccountWithFundsAction = void 0;
|
|
4
|
+
const react_redux_1 = require("react-redux");
|
|
5
|
+
const types_live_1 = require("@ledgerhq/types-live");
|
|
6
|
+
const react_1 = require("react");
|
|
7
|
+
const reducer_1 = require("../reducer");
|
|
8
|
+
function useCheckAccountWithFundsAction(completeAction) {
|
|
9
|
+
const hubState = (0, react_redux_1.useSelector)(reducer_1.hubStateSelector);
|
|
10
|
+
const isAssetTransferComplete = hubState.actionsCompleted?.[types_live_1.PostOnboardingActionId.assetsTransfer];
|
|
11
|
+
const handleAccountsUpdate = (0, react_1.useCallback)((accounts) => {
|
|
12
|
+
if (!isAssetTransferComplete) {
|
|
13
|
+
const hasAccountsWithFunds = accounts.some(account => account?.balance.isGreaterThan(0));
|
|
14
|
+
if (hasAccountsWithFunds)
|
|
15
|
+
completeAction(types_live_1.PostOnboardingActionId.assetsTransfer);
|
|
16
|
+
}
|
|
17
|
+
}, [completeAction, isAssetTransferComplete]);
|
|
18
|
+
return handleAccountsUpdate;
|
|
19
|
+
}
|
|
20
|
+
exports.useCheckAccountWithFundsAction = useCheckAccountWithFundsAction;
|
|
21
|
+
//# sourceMappingURL=useCheckAccountWithFundsAction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCheckAccountWithFundsAction.js","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/useCheckAccountWithFundsAction.ts"],"names":[],"mappings":";;;AAAA,6CAA0C;AAC1C,qDAAuE;AACvE,iCAAoC;AACpC,wCAA8C;AAE9C,SAAgB,8BAA8B,CAC5C,cAAwD;IAExD,MAAM,QAAQ,GAAG,IAAA,yBAAW,EAAC,0BAAgB,CAAC,CAAC;IAC/C,MAAM,uBAAuB,GAC3B,QAAQ,CAAC,gBAAgB,EAAE,CAAC,mCAAsB,CAAC,cAAc,CAAC,CAAC;IAErE,MAAM,oBAAoB,GAAG,IAAA,mBAAW,EACtC,CAAC,QAAmB,EAAE,EAAE;QACtB,IAAI,CAAC,uBAAuB,EAAE;YAC5B,MAAM,oBAAoB,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YACzF,IAAI,oBAAoB;gBAAE,cAAc,CAAC,mCAAsB,CAAC,cAAc,CAAC,CAAC;SACjF;IACH,CAAC,EACD,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAC1C,CAAC;IAEF,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAlBD,wEAkBC"}
|
|
@@ -10,6 +10,6 @@ export declare function hasAccountsWithFundsChanged(accounts: Account[], oldAcco
|
|
|
10
10
|
* Watches for changes in the accounts with funds (see comment on the function above for more details) and it triggers
|
|
11
11
|
* the callback function when a change occurs.
|
|
12
12
|
*/
|
|
13
|
-
declare function useAccountsWithFundsListener(accounts: Account[], callback: () => void, debounceTimer?: number): void;
|
|
13
|
+
declare function useAccountsWithFundsListener(accounts: Account[], callback: () => void, callbackForAccounts: (accounts: Account[]) => void, debounceTimer?: number): void;
|
|
14
14
|
export default useAccountsWithFundsListener;
|
|
15
15
|
//# sourceMappingURL=useAccountsWithFundsListener.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAccountsWithFundsListener.d.ts","sourceRoot":"","sources":["../../src/hooks/useAccountsWithFundsListener.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,OAAO,CAqChG;AAED;;;GAGG;AACH,iBAAS,4BAA4B,CACnC,QAAQ,EAAE,OAAO,EAAE,EACnB,QAAQ,EAAE,MAAM,IAAI,EACpB,aAAa,GAAE,MAAa,
|
|
1
|
+
{"version":3,"file":"useAccountsWithFundsListener.d.ts","sourceRoot":"","sources":["../../src/hooks/useAccountsWithFundsListener.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,OAAO,CAqChG;AAED;;;GAGG;AACH,iBAAS,4BAA4B,CACnC,QAAQ,EAAE,OAAO,EAAE,EACnB,QAAQ,EAAE,MAAM,IAAI,EACpB,mBAAmB,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,IAAI,EAClD,aAAa,GAAE,MAAa,QAiB7B;AAED,eAAe,4BAA4B,CAAC"}
|
|
@@ -43,12 +43,13 @@ export function hasAccountsWithFundsChanged(accounts, oldAccounts) {
|
|
|
43
43
|
* Watches for changes in the accounts with funds (see comment on the function above for more details) and it triggers
|
|
44
44
|
* the callback function when a change occurs.
|
|
45
45
|
*/
|
|
46
|
-
function useAccountsWithFundsListener(accounts, callback, debounceTimer = 3000) {
|
|
46
|
+
function useAccountsWithFundsListener(accounts, callback, callbackForAccounts, debounceTimer = 3000) {
|
|
47
47
|
const oldAccounts = useRef([]);
|
|
48
48
|
const debouncedUseEffect = useMemo(() => debounce(() => {
|
|
49
49
|
if (hasAccountsWithFundsChanged(accounts, oldAccounts.current)) {
|
|
50
50
|
callback();
|
|
51
51
|
}
|
|
52
|
+
callbackForAccounts(accounts);
|
|
52
53
|
oldAccounts.current = accounts;
|
|
53
54
|
}, debounceTimer), [accounts]);
|
|
54
55
|
useEffect(debouncedUseEffect, [debouncedUseEffect]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAccountsWithFundsListener.js","sourceRoot":"","sources":["../../src/hooks/useAccountsWithFundsListener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AAGvC;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CAAC,QAAmB,EAAE,WAAsB;IACrF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC9B,MAAM,kBAAkB,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;QAE1E,oCAAoC;QACpC,IAAI,CAAC,kBAAkB,EAAE;YACvB,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;gBACpC,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,SAAS;aACV;SACF;QAED,uCAAuC;QACvC,MAAM,qBAAqB,GACzB,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,kBAAkB,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,uBAAuB,GAC3B,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,kBAAkB,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QAE5E,IAAI,qBAAqB,IAAI,uBAAuB,EAAE;YACpD,OAAO,IAAI,CAAC;SACb;KACF;IAED,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;QACpC,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,CAAC,CAAC;QAEvE,yCAAyC;QACzC,IAAI,CAAC,eAAe,EAAE;YACpB,IAAI,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;gBACvC,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,SAAS;aACV;SACF;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,4BAA4B,CACnC,QAAmB,EACnB,QAAoB,EACpB,gBAAwB,IAAI;IAE5B,MAAM,WAAW,GAAG,MAAM,CAAY,EAAE,CAAC,CAAC;IAE1C,MAAM,kBAAkB,GAAG,OAAO,CAChC,GAAG,EAAE,CACH,QAAQ,CAAC,GAAG,EAAE;QACZ,IAAI,2BAA2B,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE;YAC9D,QAAQ,EAAE,CAAC;SACZ;QACD,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC,EAAE,aAAa,CAAC,EACnB,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,SAAS,CAAC,kBAAkB,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,eAAe,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"useAccountsWithFundsListener.js","sourceRoot":"","sources":["../../src/hooks/useAccountsWithFundsListener.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AAGvC;;;;;GAKG;AACH,MAAM,UAAU,2BAA2B,CAAC,QAAmB,EAAE,WAAsB;IACrF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;QAC9B,MAAM,kBAAkB,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;QAE1E,oCAAoC;QACpC,IAAI,CAAC,kBAAkB,EAAE;YACvB,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;gBACpC,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,SAAS;aACV;SACF;QAED,uCAAuC;QACvC,MAAM,qBAAqB,GACzB,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,kBAAkB,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC5E,MAAM,uBAAuB,GAC3B,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,kBAAkB,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QAE5E,IAAI,qBAAqB,IAAI,uBAAuB,EAAE;YACpD,OAAO,IAAI,CAAC;SACb;KACF;IAED,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;QACpC,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,CAAC,CAAC;QAEvE,yCAAyC;QACzC,IAAI,CAAC,eAAe,EAAE;YACpB,IAAI,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;gBACvC,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,SAAS;aACV;SACF;KACF;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,4BAA4B,CACnC,QAAmB,EACnB,QAAoB,EACpB,mBAAkD,EAClD,gBAAwB,IAAI;IAE5B,MAAM,WAAW,GAAG,MAAM,CAAY,EAAE,CAAC,CAAC;IAE1C,MAAM,kBAAkB,GAAG,OAAO,CAChC,GAAG,EAAE,CACH,QAAQ,CAAC,GAAG,EAAE;QACZ,IAAI,2BAA2B,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE;YAC9D,QAAQ,EAAE,CAAC;SACZ;QACD,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC9B,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IACjC,CAAC,EAAE,aAAa,CAAC,EACnB,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,SAAS,CAAC,kBAAkB,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,eAAe,4BAA4B,CAAC"}
|
|
@@ -5,4 +5,5 @@ export * from "./usePostOnboardingHubState";
|
|
|
5
5
|
export * from "./useStartPostOnboardingCallback";
|
|
6
6
|
export * from "./useAutoDismissPostOnboardingEntryPoint";
|
|
7
7
|
export * from "./usePostOnboardingDeeplinkHandler";
|
|
8
|
+
export * from "./useCheckAccountWithFundsAction";
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,0CAA0C,CAAC;AACzD,cAAc,oCAAoC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,0CAA0C,CAAC;AACzD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC"}
|
|
@@ -5,4 +5,5 @@ export * from "./usePostOnboardingHubState";
|
|
|
5
5
|
export * from "./useStartPostOnboardingCallback";
|
|
6
6
|
export * from "./useAutoDismissPostOnboardingEntryPoint";
|
|
7
7
|
export * from "./usePostOnboardingDeeplinkHandler";
|
|
8
|
+
export * from "./useCheckAccountWithFundsAction";
|
|
8
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,0CAA0C,CAAC;AACzD,cAAc,oCAAoC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAC;AACvD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8CAA8C,CAAC;AAC7D,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,0CAA0C,CAAC;AACzD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { Account, PostOnboardingActionId } from "@ledgerhq/types-live";
|
|
2
|
+
export declare function useCheckAccountWithFundsAction(completeAction: (action: PostOnboardingActionId) => void): (accounts: Account[]) => void;
|
|
3
|
+
//# sourceMappingURL=useCheckAccountWithFundsAction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCheckAccountWithFundsAction.d.ts","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/useCheckAccountWithFundsAction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAIvE,wBAAgB,8BAA8B,CAC5C,cAAc,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,IAAI,cAO3C,OAAO,EAAE,UAUvB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { useSelector } from "react-redux";
|
|
2
|
+
import { PostOnboardingActionId } from "@ledgerhq/types-live";
|
|
3
|
+
import { useCallback } from "react";
|
|
4
|
+
import { hubStateSelector } from "../reducer";
|
|
5
|
+
export function useCheckAccountWithFundsAction(completeAction) {
|
|
6
|
+
const hubState = useSelector(hubStateSelector);
|
|
7
|
+
const isAssetTransferComplete = hubState.actionsCompleted?.[PostOnboardingActionId.assetsTransfer];
|
|
8
|
+
const handleAccountsUpdate = useCallback((accounts) => {
|
|
9
|
+
if (!isAssetTransferComplete) {
|
|
10
|
+
const hasAccountsWithFunds = accounts.some(account => account?.balance.isGreaterThan(0));
|
|
11
|
+
if (hasAccountsWithFunds)
|
|
12
|
+
completeAction(PostOnboardingActionId.assetsTransfer);
|
|
13
|
+
}
|
|
14
|
+
}, [completeAction, isAssetTransferComplete]);
|
|
15
|
+
return handleAccountsUpdate;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=useCheckAccountWithFundsAction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCheckAccountWithFundsAction.js","sourceRoot":"","sources":["../../../src/postOnboarding/hooks/useCheckAccountWithFundsAction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAW,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,UAAU,8BAA8B,CAC5C,cAAwD;IAExD,MAAM,QAAQ,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAC/C,MAAM,uBAAuB,GAC3B,QAAQ,CAAC,gBAAgB,EAAE,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;IAErE,MAAM,oBAAoB,GAAG,WAAW,CACtC,CAAC,QAAmB,EAAE,EAAE;QACtB,IAAI,CAAC,uBAAuB,EAAE;YAC5B,MAAM,oBAAoB,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YACzF,IAAI,oBAAoB;gBAAE,cAAc,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;SACjF;IACH,CAAC,EACD,CAAC,cAAc,EAAE,uBAAuB,CAAC,CAC1C,CAAC;IAEF,OAAO,oBAAoB,CAAC;AAC9B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/live-common",
|
|
3
3
|
"description": "Common ground for the Ledger Live apps",
|
|
4
|
-
"version": "34.54.0-nightly.
|
|
4
|
+
"version": "34.54.0-nightly.20251127103328",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "https://github.com/LedgerHQ/ledger-live.git"
|
|
@@ -182,79 +182,79 @@
|
|
|
182
182
|
"xstate": "^5.19.2",
|
|
183
183
|
"yargs": "^17.0.0",
|
|
184
184
|
"zod": "^3.22.4",
|
|
185
|
-
"@ledgerhq/coin-algorand": "^0.14.0-nightly.
|
|
186
|
-
"@ledgerhq/coin-aptos": "^3.6.1-nightly.
|
|
187
|
-
"@ledgerhq/coin-bitcoin": "^0.25.1-nightly.
|
|
188
|
-
"@ledgerhq/coin-canton": "^0.11.0-nightly.
|
|
189
|
-
"@ledgerhq/coin-cardano": "^0.15.1-nightly.
|
|
190
|
-
"@ledgerhq/coin-casper": "^2.4.1-nightly.
|
|
191
|
-
"@ledgerhq/coin-celo": "^1.7.2-nightly.
|
|
192
|
-
"@ledgerhq/coin-cosmos": "^0.20.1-nightly.
|
|
193
|
-
"@ledgerhq/coin-evm": "^2.36.0-nightly.
|
|
194
|
-
"@ledgerhq/coin-filecoin": "^1.15.0-nightly.
|
|
195
|
-
"@ledgerhq/coin-framework": "^6.10.0-nightly.
|
|
196
|
-
"@ledgerhq/coin-hedera": "^1.15.0-nightly.
|
|
197
|
-
"@ledgerhq/coin-icon": "^0.15.1-nightly.
|
|
198
|
-
"@ledgerhq/coin-internet_computer": "^1.11.1-nightly.
|
|
199
|
-
"@ledgerhq/coin-kaspa": "^1.4.2-nightly.
|
|
200
|
-
"@ledgerhq/coin-mina": "^1.4.2-nightly.
|
|
201
|
-
"@ledgerhq/coin-multiversx": "^0.8.1-nightly.
|
|
202
|
-
"@ledgerhq/coin-near": "^0.16.1-nightly.
|
|
203
|
-
"@ledgerhq/coin-polkadot": "^6.13.1-nightly.
|
|
204
|
-
"@ledgerhq/coin-solana": "^0.38.0-nightly.
|
|
205
|
-
"@ledgerhq/coin-stacks": "^0.12.1-nightly.
|
|
206
|
-
"@ledgerhq/coin-stellar": "^6.8.0-nightly.
|
|
207
|
-
"@ledgerhq/coin-sui": "^0.18.1-nightly.
|
|
208
|
-
"@ledgerhq/coin-tezos": "^6.10.0-nightly.
|
|
209
|
-
"@ledgerhq/coin-ton": "^0.17.1-nightly.
|
|
210
|
-
"@ledgerhq/coin-tron": "^5.7.1-nightly.
|
|
211
|
-
"@ledgerhq/coin-vechain": "^2.12.2-nightly.
|
|
212
|
-
"@ledgerhq/coin-xrp": "^7.9.0-nightly.
|
|
213
|
-
"@ledgerhq/crypto-icons-ui": "^1.24.0-nightly.
|
|
214
|
-
"@ledgerhq/cryptoassets": "^13.34.0-nightly.
|
|
215
|
-
"@ledgerhq/device-core": "^0.6.9-nightly.
|
|
185
|
+
"@ledgerhq/coin-algorand": "^0.14.0-nightly.20251127103328",
|
|
186
|
+
"@ledgerhq/coin-aptos": "^3.6.1-nightly.20251127103328",
|
|
187
|
+
"@ledgerhq/coin-bitcoin": "^0.25.1-nightly.20251127103328",
|
|
188
|
+
"@ledgerhq/coin-canton": "^0.11.0-nightly.20251127103328",
|
|
189
|
+
"@ledgerhq/coin-cardano": "^0.15.1-nightly.20251127103328",
|
|
190
|
+
"@ledgerhq/coin-casper": "^2.4.1-nightly.20251127103328",
|
|
191
|
+
"@ledgerhq/coin-celo": "^1.7.2-nightly.20251127103328",
|
|
192
|
+
"@ledgerhq/coin-cosmos": "^0.20.1-nightly.20251127103328",
|
|
193
|
+
"@ledgerhq/coin-evm": "^2.36.0-nightly.20251127103328",
|
|
194
|
+
"@ledgerhq/coin-filecoin": "^1.15.0-nightly.20251127103328",
|
|
195
|
+
"@ledgerhq/coin-framework": "^6.10.0-nightly.20251127103328",
|
|
196
|
+
"@ledgerhq/coin-hedera": "^1.15.0-nightly.20251127103328",
|
|
197
|
+
"@ledgerhq/coin-icon": "^0.15.1-nightly.20251127103328",
|
|
198
|
+
"@ledgerhq/coin-internet_computer": "^1.11.1-nightly.20251127103328",
|
|
199
|
+
"@ledgerhq/coin-kaspa": "^1.4.2-nightly.20251127103328",
|
|
200
|
+
"@ledgerhq/coin-mina": "^1.4.2-nightly.20251127103328",
|
|
201
|
+
"@ledgerhq/coin-multiversx": "^0.8.1-nightly.20251127103328",
|
|
202
|
+
"@ledgerhq/coin-near": "^0.16.1-nightly.20251127103328",
|
|
203
|
+
"@ledgerhq/coin-polkadot": "^6.13.1-nightly.20251127103328",
|
|
204
|
+
"@ledgerhq/coin-solana": "^0.38.0-nightly.20251127103328",
|
|
205
|
+
"@ledgerhq/coin-stacks": "^0.12.1-nightly.20251127103328",
|
|
206
|
+
"@ledgerhq/coin-stellar": "^6.8.0-nightly.20251127103328",
|
|
207
|
+
"@ledgerhq/coin-sui": "^0.18.1-nightly.20251127103328",
|
|
208
|
+
"@ledgerhq/coin-tezos": "^6.10.0-nightly.20251127103328",
|
|
209
|
+
"@ledgerhq/coin-ton": "^0.17.1-nightly.20251127103328",
|
|
210
|
+
"@ledgerhq/coin-tron": "^5.7.1-nightly.20251127103328",
|
|
211
|
+
"@ledgerhq/coin-vechain": "^2.12.2-nightly.20251127103328",
|
|
212
|
+
"@ledgerhq/coin-xrp": "^7.9.0-nightly.20251127103328",
|
|
213
|
+
"@ledgerhq/crypto-icons-ui": "^1.24.0-nightly.20251127103328",
|
|
214
|
+
"@ledgerhq/cryptoassets": "^13.34.0-nightly.20251127103328",
|
|
215
|
+
"@ledgerhq/device-core": "^0.6.9-nightly.20251127103328",
|
|
216
216
|
"@ledgerhq/devices": "8.7.0",
|
|
217
217
|
"@ledgerhq/errors": "^6.27.0",
|
|
218
218
|
"@ledgerhq/hw-app-algorand": "^6.31.9",
|
|
219
219
|
"@ledgerhq/hw-app-aptos": "^6.34.9",
|
|
220
|
-
"@ledgerhq/hw-app-btc": "^10.12.1-nightly.
|
|
221
|
-
"@ledgerhq/hw-app-celo": "^6.35.4-nightly.
|
|
220
|
+
"@ledgerhq/hw-app-btc": "^10.12.1-nightly.20251127103328",
|
|
221
|
+
"@ledgerhq/hw-app-celo": "^6.35.4-nightly.20251127103328",
|
|
222
222
|
"@ledgerhq/hw-app-cosmos": "^6.32.9",
|
|
223
|
-
"@ledgerhq/hw-app-eth": "^7.0.0-nightly.
|
|
224
|
-
"@ledgerhq/hw-app-exchange": "^0.18.0-nightly.
|
|
223
|
+
"@ledgerhq/hw-app-eth": "^7.0.0-nightly.20251127103328",
|
|
224
|
+
"@ledgerhq/hw-app-exchange": "^0.18.0-nightly.20251127103328",
|
|
225
225
|
"@ledgerhq/hw-app-hedera": "^1.2.9",
|
|
226
226
|
"@ledgerhq/hw-app-icon": "^1.3.9",
|
|
227
227
|
"@ledgerhq/hw-app-kaspa": "^1.3.2",
|
|
228
|
-
"@ledgerhq/hw-app-multiversx": "^6.26.0",
|
|
229
228
|
"@ledgerhq/hw-app-near": "^6.31.9",
|
|
230
229
|
"@ledgerhq/hw-app-polkadot": "^6.34.9",
|
|
231
230
|
"@ledgerhq/hw-app-str": "^7.2.9",
|
|
232
231
|
"@ledgerhq/hw-app-sui": "^1.4.0",
|
|
233
232
|
"@ledgerhq/hw-app-tezos": "^6.31.9",
|
|
234
233
|
"@ledgerhq/hw-app-trx": "^6.31.9",
|
|
235
|
-
"@ledgerhq/hw-app-vet": "^0.8.0-nightly.
|
|
234
|
+
"@ledgerhq/hw-app-vet": "^0.8.0-nightly.20251127103328",
|
|
236
235
|
"@ledgerhq/hw-app-xrp": "^6.32.7",
|
|
237
236
|
"@ledgerhq/hw-bolos": "^6.32.9",
|
|
238
237
|
"@ledgerhq/hw-transport": "6.31.13",
|
|
239
238
|
"@ledgerhq/hw-transport-mocker": "^6.29.13",
|
|
240
|
-
"@ledgerhq/ledger-cal-service": "^1.9.1-nightly.
|
|
241
|
-
"@ledgerhq/ledger-trust-service": "^0.4.3-nightly.
|
|
239
|
+
"@ledgerhq/ledger-cal-service": "^1.9.1-nightly.20251127103328",
|
|
240
|
+
"@ledgerhq/ledger-trust-service": "^0.4.3-nightly.20251127103328",
|
|
242
241
|
"@ledgerhq/live-config": "^3.2.0",
|
|
243
|
-
"@ledgerhq/live-countervalues": "^0.10.1-nightly.
|
|
244
|
-
"@ledgerhq/live-countervalues-react": "^0.7.3-nightly.
|
|
242
|
+
"@ledgerhq/live-countervalues": "^0.10.1-nightly.20251127103328",
|
|
243
|
+
"@ledgerhq/live-countervalues-react": "^0.7.3-nightly.20251127103328",
|
|
245
244
|
"@ledgerhq/live-dmk-shared": "^0.15.0",
|
|
246
|
-
"@ledgerhq/live-env": "^2.22.0-nightly.
|
|
245
|
+
"@ledgerhq/live-env": "^2.22.0-nightly.20251127103328",
|
|
247
246
|
"@ledgerhq/live-hooks": "0.2.0",
|
|
248
|
-
"@ledgerhq/live-network": "^2.1.2-nightly.
|
|
247
|
+
"@ledgerhq/live-network": "^2.1.2-nightly.20251127103328",
|
|
249
248
|
"@ledgerhq/live-promise": "^0.1.1",
|
|
250
|
-
"@ledgerhq/live-signer-canton": "^0.5.2-nightly.
|
|
251
|
-
"@ledgerhq/live-signer-evm": "^0.10.2-nightly.
|
|
252
|
-
"@ledgerhq/live-signer-solana": "^0.6.2-nightly.
|
|
253
|
-
"@ledgerhq/live-wallet": "^0.16.1-nightly.
|
|
249
|
+
"@ledgerhq/live-signer-canton": "^0.5.2-nightly.20251127103328",
|
|
250
|
+
"@ledgerhq/live-signer-evm": "^0.10.2-nightly.20251127103328",
|
|
251
|
+
"@ledgerhq/live-signer-solana": "^0.6.2-nightly.20251127103328",
|
|
252
|
+
"@ledgerhq/live-wallet": "^0.16.1-nightly.20251127103328",
|
|
254
253
|
"@ledgerhq/logs": "^6.13.0",
|
|
255
|
-
"@ledgerhq/speculos-transport": "^0.3.0-nightly.
|
|
256
|
-
"@ledgerhq/wallet-api-acre-module": "^0.10.0-nightly.
|
|
257
|
-
"@ledgerhq/wallet-api-exchange-module": "^0.19.0-nightly.
|
|
254
|
+
"@ledgerhq/speculos-transport": "^0.3.0-nightly.20251127103328",
|
|
255
|
+
"@ledgerhq/wallet-api-acre-module": "^0.10.0-nightly.20251127103328",
|
|
256
|
+
"@ledgerhq/wallet-api-exchange-module": "^0.19.0-nightly.20251127103328",
|
|
257
|
+
"@ledgerhq/hw-app-multiversx": "^6.26.0"
|
|
258
258
|
},
|
|
259
259
|
"devDependencies": {
|
|
260
260
|
"@solana/web3.js": "1.95.4",
|
|
@@ -302,10 +302,10 @@
|
|
|
302
302
|
"undici": "6.19.2",
|
|
303
303
|
"uuid": "^8.3.2",
|
|
304
304
|
"ws": "7",
|
|
305
|
-
"@ledgerhq/device-react": "^0.3.3-nightly.
|
|
305
|
+
"@ledgerhq/device-react": "^0.3.3-nightly.20251127103328",
|
|
306
306
|
"@ledgerhq/types-cryptoassets": "^7.30.0",
|
|
307
307
|
"@ledgerhq/types-devices": "^6.27.0",
|
|
308
|
-
"@ledgerhq/types-live": "^6.90.0-nightly.
|
|
308
|
+
"@ledgerhq/types-live": "^6.90.0-nightly.20251127103328"
|
|
309
309
|
},
|
|
310
310
|
"scripts": {
|
|
311
311
|
"build": "zx ./scripts/build-ts.mjs",
|
|
@@ -54,6 +54,7 @@ export function hasAccountsWithFundsChanged(accounts: Account[], oldAccounts: Ac
|
|
|
54
54
|
function useAccountsWithFundsListener(
|
|
55
55
|
accounts: Account[],
|
|
56
56
|
callback: () => void,
|
|
57
|
+
callbackForAccounts: (accounts: Account[]) => void,
|
|
57
58
|
debounceTimer: number = 3000,
|
|
58
59
|
) {
|
|
59
60
|
const oldAccounts = useRef<Account[]>([]);
|
|
@@ -64,6 +65,7 @@ function useAccountsWithFundsListener(
|
|
|
64
65
|
if (hasAccountsWithFundsChanged(accounts, oldAccounts.current)) {
|
|
65
66
|
callback();
|
|
66
67
|
}
|
|
68
|
+
callbackForAccounts(accounts);
|
|
67
69
|
oldAccounts.current = accounts;
|
|
68
70
|
}, debounceTimer),
|
|
69
71
|
[accounts],
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @jest-environment jsdom
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { renderHook, act } from "@testing-library/react";
|
|
6
|
+
import { hubStateSelector } from "../reducer";
|
|
7
|
+
import { useCheckAccountWithFundsAction } from "./useCheckAccountWithFundsAction";
|
|
8
|
+
import { PostOnboardingActionId } from "@ledgerhq/types-live";
|
|
9
|
+
import { DeviceModelId } from "@ledgerhq/types-devices";
|
|
10
|
+
import { createFixtureCryptoCurrency } from "../../mock/fixtures/cryptoCurrencies";
|
|
11
|
+
import { genAccount } from "@ledgerhq/coin-framework/mocks/account";
|
|
12
|
+
import { BigNumber } from "bignumber.js";
|
|
13
|
+
|
|
14
|
+
jest.mock("../reducer");
|
|
15
|
+
jest.mock("react-redux", () => ({
|
|
16
|
+
useSelector: val => val(),
|
|
17
|
+
}));
|
|
18
|
+
|
|
19
|
+
const mockedHubStateSelector = jest.mocked(hubStateSelector);
|
|
20
|
+
|
|
21
|
+
const defaultHubState = {
|
|
22
|
+
deviceModelId: DeviceModelId.nanoX,
|
|
23
|
+
actionsToComplete: [],
|
|
24
|
+
actionsCompleted: {},
|
|
25
|
+
lastActionCompleted: null,
|
|
26
|
+
postOnboardingInProgress: false,
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const stateFundsTransferCompleted = {
|
|
30
|
+
deviceModelId: DeviceModelId.nanoX,
|
|
31
|
+
actionsToComplete: [PostOnboardingActionId.assetsTransfer],
|
|
32
|
+
actionsCompleted: {
|
|
33
|
+
[PostOnboardingActionId.assetsTransfer]: true,
|
|
34
|
+
},
|
|
35
|
+
lastActionCompleted: PostOnboardingActionId.personalizeMock,
|
|
36
|
+
postOnboardingInProgress: true,
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
const mockCompleteAction = jest.fn();
|
|
40
|
+
|
|
41
|
+
const ethereumCurrency = createFixtureCryptoCurrency("ethereum");
|
|
42
|
+
const ethereumAccountZero = genAccount("ethereum-account-zero", {
|
|
43
|
+
currency: ethereumCurrency,
|
|
44
|
+
});
|
|
45
|
+
ethereumAccountZero.balance = new BigNumber("0");
|
|
46
|
+
const nonFundedAccount = [ethereumAccountZero];
|
|
47
|
+
|
|
48
|
+
const ethereumAccountWithBalance = genAccount("ethereum-account-balance", {
|
|
49
|
+
currency: ethereumCurrency,
|
|
50
|
+
});
|
|
51
|
+
ethereumAccountWithBalance.balance = new BigNumber("10000");
|
|
52
|
+
const fundedAccount = [ethereumAccountWithBalance];
|
|
53
|
+
|
|
54
|
+
describe("useCheckAccountWithFundsAction", () => {
|
|
55
|
+
beforeEach(() => {
|
|
56
|
+
mockCompleteAction.mockClear();
|
|
57
|
+
mockedHubStateSelector.mockClear();
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
it("should not run completeAction when asset transfer not complete and account with no funds", () => {
|
|
61
|
+
const state = defaultHubState;
|
|
62
|
+
mockedHubStateSelector.mockReturnValue(state);
|
|
63
|
+
|
|
64
|
+
const { result } = renderHook(() => useCheckAccountWithFundsAction(mockCompleteAction));
|
|
65
|
+
|
|
66
|
+
act(() => {
|
|
67
|
+
result.current(nonFundedAccount);
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
expect(mockCompleteAction).not.toHaveBeenCalled();
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
it("should run completeAction when asset transfer not complete and account with funds", () => {
|
|
74
|
+
const state = defaultHubState;
|
|
75
|
+
mockedHubStateSelector.mockReturnValue(state);
|
|
76
|
+
|
|
77
|
+
const { result } = renderHook(() => useCheckAccountWithFundsAction(mockCompleteAction));
|
|
78
|
+
|
|
79
|
+
act(() => {
|
|
80
|
+
result.current(fundedAccount);
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
expect(mockCompleteAction).toHaveBeenCalled();
|
|
84
|
+
expect(mockCompleteAction).toHaveBeenNthCalledWith(1, PostOnboardingActionId.assetsTransfer);
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
it("should not run completeAction when asset transfer complete and account with funds", () => {
|
|
88
|
+
const state = stateFundsTransferCompleted;
|
|
89
|
+
mockedHubStateSelector.mockReturnValue(state);
|
|
90
|
+
|
|
91
|
+
const { result } = renderHook(() => useCheckAccountWithFundsAction(mockCompleteAction));
|
|
92
|
+
|
|
93
|
+
act(() => {
|
|
94
|
+
result.current(fundedAccount);
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
expect(mockCompleteAction).not.toHaveBeenCalled();
|
|
98
|
+
});
|
|
99
|
+
});
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { useSelector } from "react-redux";
|
|
2
|
+
import { Account, PostOnboardingActionId } from "@ledgerhq/types-live";
|
|
3
|
+
import { useCallback } from "react";
|
|
4
|
+
import { hubStateSelector } from "../reducer";
|
|
5
|
+
|
|
6
|
+
export function useCheckAccountWithFundsAction(
|
|
7
|
+
completeAction: (action: PostOnboardingActionId) => void,
|
|
8
|
+
) {
|
|
9
|
+
const hubState = useSelector(hubStateSelector);
|
|
10
|
+
const isAssetTransferComplete =
|
|
11
|
+
hubState.actionsCompleted?.[PostOnboardingActionId.assetsTransfer];
|
|
12
|
+
|
|
13
|
+
const handleAccountsUpdate = useCallback(
|
|
14
|
+
(accounts: Account[]) => {
|
|
15
|
+
if (!isAssetTransferComplete) {
|
|
16
|
+
const hasAccountsWithFunds = accounts.some(account => account?.balance.isGreaterThan(0));
|
|
17
|
+
if (hasAccountsWithFunds) completeAction(PostOnboardingActionId.assetsTransfer);
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
[completeAction, isAssetTransferComplete],
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
return handleAccountsUpdate;
|
|
24
|
+
}
|