@ledgerhq/live-countervalues-react 0.2.45-nightly.2 → 0.3.0
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/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +19 -17
- package/lib/index.d.ts +18 -44
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +131 -81
- package/lib/index.js.map +1 -1
- package/lib-es/index.d.ts +18 -44
- package/lib-es/index.d.ts.map +1 -1
- package/lib-es/index.js +124 -78
- package/lib-es/index.js.map +1 -1
- package/package.json +6 -6
- package/src/index.tsx +180 -120
- package/lib/CountervaluesMarketcapProvider.d.ts +0 -23
- package/lib/CountervaluesMarketcapProvider.d.ts.map +0 -1
- package/lib/CountervaluesMarketcapProvider.js +0 -89
- package/lib/CountervaluesMarketcapProvider.js.map +0 -1
- package/lib-es/CountervaluesMarketcapProvider.d.ts +0 -23
- package/lib-es/CountervaluesMarketcapProvider.d.ts.map +0 -1
- package/lib-es/CountervaluesMarketcapProvider.js +0 -58
- package/lib-es/CountervaluesMarketcapProvider.js.map +0 -1
- package/src/CountervaluesMarketcapProvider.tsx +0 -94
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
> @ledgerhq/live-countervalues-react@0.
|
|
2
|
+
> @ledgerhq/live-countervalues-react@0.3.0 build /home/runner/work/ledger-live/ledger-live/libs/live-countervalues-react
|
|
3
3
|
> tsc && tsc -m esnext --moduleResolution bundler --outDir lib-es
|
|
4
4
|
|
package/CHANGELOG.md
CHANGED
|
@@ -1,32 +1,34 @@
|
|
|
1
1
|
# @ledgerhq/live-countervalues-react
|
|
2
2
|
|
|
3
|
-
## 0.
|
|
3
|
+
## 0.3.0
|
|
4
4
|
|
|
5
|
-
###
|
|
6
|
-
|
|
7
|
-
- Updated dependencies [[`0c8486e`](https://github.com/LedgerHQ/ledger-live/commit/0c8486ea830e9e2abf1dfc5d108117e1db733072), [`a8b4f57`](https://github.com/LedgerHQ/ledger-live/commit/a8b4f57bf7d82e6c2444a65901e927c3c3d64412), [`67e2a7c`](https://github.com/LedgerHQ/ledger-live/commit/67e2a7c5a74d000f22684254778dfec5b8b5163d)]:
|
|
8
|
-
- @ledgerhq/cryptoassets@13.24.0-nightly.0
|
|
9
|
-
- @ledgerhq/coin-framework@5.9.0-nightly.2
|
|
10
|
-
- @ledgerhq/types-live@6.79.1-nightly.0
|
|
11
|
-
- @ledgerhq/live-countervalues@0.6.0-nightly.2
|
|
5
|
+
### Minor Changes
|
|
12
6
|
|
|
13
|
-
|
|
7
|
+
- [#11082](https://github.com/LedgerHQ/ledger-live/pull/11082) [`59c65db`](https://github.com/LedgerHQ/ledger-live/commit/59c65dbee3008fbd8283d0625f7448a2e558f77c) Thanks [@marcotoniut-ledger](https://github.com/marcotoniut-ledger)! - implement countervalues marketcaps' reducer
|
|
14
8
|
|
|
15
9
|
### Patch Changes
|
|
16
10
|
|
|
17
|
-
- [
|
|
11
|
+
- Updated dependencies [[`b5cbffa`](https://github.com/LedgerHQ/ledger-live/commit/b5cbffac207569027e241db761a6aa70b3b1b636), [`2da9b4a`](https://github.com/LedgerHQ/ledger-live/commit/2da9b4a5dd9fec3fea188fc9fa107b2c3479d1be), [`5bb2111`](https://github.com/LedgerHQ/ledger-live/commit/5bb2111d6a0c84cd0d6508bbf33d184bc89f9da3), [`417e4fc`](https://github.com/LedgerHQ/ledger-live/commit/417e4fc8b92ebc95542ca915e14023fdb62497bb), [`9c63d6b`](https://github.com/LedgerHQ/ledger-live/commit/9c63d6b8d5fb629a19514ec36396c35eeefb96aa), [`8b0b4ef`](https://github.com/LedgerHQ/ledger-live/commit/8b0b4efaf2c0968cfb60c0cecebca9c575b00748)]:
|
|
12
|
+
- @ledgerhq/cryptoassets@13.24.0
|
|
13
|
+
- @ledgerhq/types-cryptoassets@7.25.0
|
|
14
|
+
- @ledgerhq/types-live@6.80.0
|
|
15
|
+
- @ledgerhq/coin-framework@6.0.0
|
|
16
|
+
- @ledgerhq/live-countervalues@0.6.0
|
|
18
17
|
|
|
19
|
-
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
## 0.3.0-next.0
|
|
19
|
+
|
|
20
|
+
### Minor Changes
|
|
22
21
|
|
|
23
|
-
|
|
22
|
+
- [#11082](https://github.com/LedgerHQ/ledger-live/pull/11082) [`59c65db`](https://github.com/LedgerHQ/ledger-live/commit/59c65dbee3008fbd8283d0625f7448a2e558f77c) Thanks [@marcotoniut-ledger](https://github.com/marcotoniut-ledger)! - implement countervalues marketcaps' reducer
|
|
24
23
|
|
|
25
24
|
### Patch Changes
|
|
26
25
|
|
|
27
|
-
- Updated dependencies [[`9c63d6b`](https://github.com/LedgerHQ/ledger-live/commit/9c63d6b8d5fb629a19514ec36396c35eeefb96aa), [`8b0b4ef`](https://github.com/LedgerHQ/ledger-live/commit/8b0b4efaf2c0968cfb60c0cecebca9c575b00748)]:
|
|
28
|
-
- @ledgerhq/
|
|
29
|
-
- @ledgerhq/
|
|
26
|
+
- Updated dependencies [[`b5cbffa`](https://github.com/LedgerHQ/ledger-live/commit/b5cbffac207569027e241db761a6aa70b3b1b636), [`2da9b4a`](https://github.com/LedgerHQ/ledger-live/commit/2da9b4a5dd9fec3fea188fc9fa107b2c3479d1be), [`5bb2111`](https://github.com/LedgerHQ/ledger-live/commit/5bb2111d6a0c84cd0d6508bbf33d184bc89f9da3), [`417e4fc`](https://github.com/LedgerHQ/ledger-live/commit/417e4fc8b92ebc95542ca915e14023fdb62497bb), [`9c63d6b`](https://github.com/LedgerHQ/ledger-live/commit/9c63d6b8d5fb629a19514ec36396c35eeefb96aa), [`8b0b4ef`](https://github.com/LedgerHQ/ledger-live/commit/8b0b4efaf2c0968cfb60c0cecebca9c575b00748)]:
|
|
27
|
+
- @ledgerhq/cryptoassets@13.24.0-next.0
|
|
28
|
+
- @ledgerhq/types-cryptoassets@7.25.0-next.0
|
|
29
|
+
- @ledgerhq/types-live@6.80.0-next.0
|
|
30
|
+
- @ledgerhq/coin-framework@6.0.0-next.0
|
|
31
|
+
- @ledgerhq/live-countervalues@0.6.0-next.0
|
|
30
32
|
|
|
31
33
|
## 0.2.44
|
|
32
34
|
|
package/lib/index.d.ts
CHANGED
|
@@ -3,28 +3,13 @@ import type { Currency, Unit } from "@ledgerhq/types-cryptoassets";
|
|
|
3
3
|
import type { Account, AccountLike } from "@ledgerhq/types-live";
|
|
4
4
|
import { BigNumber } from "bignumber.js";
|
|
5
5
|
import React, { ReactElement } from "react";
|
|
6
|
-
|
|
7
|
-
export interface
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
* @note: make sure that the object is memoized to avoid re-renders.
|
|
14
|
-
*/
|
|
15
|
-
export interface CountervaluesBridge {
|
|
16
|
-
setPollingIsPolling(polling: boolean): void;
|
|
17
|
-
setPollingTriggerLoad(triggerLoad: boolean): void;
|
|
18
|
-
setState(state: CounterValuesState): void;
|
|
19
|
-
setStateError(error: Error): void;
|
|
20
|
-
setStatePending(pending: boolean): void;
|
|
21
|
-
usePollingIsPolling(): boolean;
|
|
22
|
-
usePollingTriggerLoad(): boolean;
|
|
23
|
-
useStateError(): Error | null;
|
|
24
|
-
useStatePending(): boolean;
|
|
25
|
-
useState(): CounterValuesState;
|
|
26
|
-
useUserSettings(): CountervaluesSettings;
|
|
27
|
-
wipe(): void;
|
|
6
|
+
/** Bridge enabling platform-specific persistence of market-cap ids. */
|
|
7
|
+
export interface CountervaluesMarketcapBridge {
|
|
8
|
+
useIds(): string[];
|
|
9
|
+
useLastUpdated(): number | undefined;
|
|
10
|
+
setLoading(loading: boolean): void;
|
|
11
|
+
setIds(ids: string[]): void;
|
|
12
|
+
setError(message: string): void;
|
|
28
13
|
}
|
|
29
14
|
export type Polling = {
|
|
30
15
|
wipe: () => void;
|
|
@@ -35,35 +20,29 @@ export type Polling = {
|
|
|
35
20
|
error: Error | null | undefined;
|
|
36
21
|
};
|
|
37
22
|
export type Props = {
|
|
38
|
-
/** Bridge enabling platform-specific persistence of countervalues state. */
|
|
39
|
-
bridge: CountervaluesBridge;
|
|
40
23
|
children: React.ReactNode;
|
|
41
|
-
|
|
24
|
+
userSettings: CountervaluesSettings;
|
|
42
25
|
pollInitDelay?: number;
|
|
43
|
-
/** the minimum time to wait before two automatic polls (then one that happen whatever network/appstate events) */
|
|
44
26
|
autopollInterval?: number;
|
|
45
|
-
/** debounce time before actually fetching */
|
|
46
27
|
debounceDelay?: number;
|
|
47
28
|
savedState?: CounterValuesStateRaw;
|
|
48
29
|
};
|
|
49
|
-
/**
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
30
|
+
/** Provides market-cap ids via the supplied bridge. */
|
|
31
|
+
export declare function CountervaluesMarketcapProvider({ children, bridge, }: {
|
|
32
|
+
children: React.ReactNode;
|
|
33
|
+
bridge: CountervaluesMarketcapBridge;
|
|
34
|
+
}): ReactElement;
|
|
53
35
|
/**
|
|
54
36
|
* Root countervalues provider (polling + calculation).
|
|
55
37
|
*/
|
|
56
|
-
export declare function CountervaluesProvider({ children,
|
|
38
|
+
export declare function CountervaluesProvider({ children, userSettings, pollInitDelay, debounceDelay, savedState, }: Props): ReactElement;
|
|
39
|
+
/** Returns market-cap ids. */
|
|
40
|
+
export declare function useMarketcapIds(): string[];
|
|
57
41
|
/** Returns the full countervalues state. */
|
|
58
42
|
export declare function useCountervaluesState(): CounterValuesState;
|
|
59
|
-
/** Allows consumer to access the countervalues polling control object */
|
|
60
43
|
export declare function useCountervaluesPolling(): Polling;
|
|
61
|
-
|
|
62
|
-
export declare function
|
|
63
|
-
/**
|
|
64
|
-
* Provides a way to calculate a countervalue from a value
|
|
65
|
-
* Seems like a major bottleneck, see if it actually needs the full state or we can select only the needed data
|
|
66
|
-
*/
|
|
44
|
+
export declare function useCountervaluesUserSettingsContext(): CountervaluesSettings;
|
|
45
|
+
export declare function useCountervaluesExport(): CounterValuesStateRaw;
|
|
67
46
|
export declare function useCalculate(query: {
|
|
68
47
|
value: number;
|
|
69
48
|
from: Currency;
|
|
@@ -72,7 +51,6 @@ export declare function useCalculate(query: {
|
|
|
72
51
|
date?: Date | null | undefined;
|
|
73
52
|
reverse?: boolean;
|
|
74
53
|
}): number | null | undefined;
|
|
75
|
-
/** Provides a way to calculate a countervalue from a value using a callback */
|
|
76
54
|
export declare function useCalculateCountervalueCallback({ to, }: {
|
|
77
55
|
to: Currency;
|
|
78
56
|
}): (from: Currency, value: BigNumber) => BigNumber | null | undefined;
|
|
@@ -86,10 +64,6 @@ export declare function useSendAmount({ account, fiatCurrency, cryptoAmount, }:
|
|
|
86
64
|
fiatUnit: Unit;
|
|
87
65
|
calculateCryptoAmount: (fiatAmount: BigNumber) => BigNumber;
|
|
88
66
|
};
|
|
89
|
-
/**
|
|
90
|
-
* Infer the tracking pairs for the top coins that the portfolio needs to display itself
|
|
91
|
-
* if startDate is undefined, the feature is disabled
|
|
92
|
-
*/
|
|
93
67
|
export declare function useTrackingPairsForTopCoins(marketcapIds: string[], countervalue: Currency, size: number, startDate: Date | undefined): {
|
|
94
68
|
from: import("@ledgerhq/types-cryptoassets").CryptoCurrency;
|
|
95
69
|
to: Currency;
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|
package/lib/index.js
CHANGED
|
@@ -22,42 +22,83 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
22
22
|
__setModuleDefault(result, mod);
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
25
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.useTrackingPairForAccounts = exports.useTrackingPairsForTopCoins = exports.useSendAmount = exports.useCalculateCountervalueCallback = exports.useCalculate = exports.
|
|
29
|
+
exports.useTrackingPairForAccounts = exports.useTrackingPairsForTopCoins = exports.useSendAmount = exports.useCalculateCountervalueCallback = exports.useCalculate = exports.useCountervaluesExport = exports.useCountervaluesUserSettingsContext = exports.useCountervaluesPolling = exports.useCountervaluesState = exports.useMarketcapIds = exports.CountervaluesProvider = exports.CountervaluesMarketcapProvider = void 0;
|
|
27
30
|
const helpers_1 = require("@ledgerhq/coin-framework/account/helpers");
|
|
31
|
+
const index_1 = __importDefault(require("@ledgerhq/live-countervalues/api/index"));
|
|
28
32
|
const logic_1 = require("@ledgerhq/live-countervalues/logic");
|
|
29
33
|
const useDebounce_1 = require("@ledgerhq/live-hooks/useDebounce");
|
|
34
|
+
const logs_1 = require("@ledgerhq/logs");
|
|
30
35
|
const bignumber_js_1 = require("bignumber.js");
|
|
31
36
|
const react_1 = __importStar(require("react"));
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
37
|
+
const CountervaluesPollingContext = (0, react_1.createContext)({
|
|
38
|
+
wipe: () => { },
|
|
39
|
+
poll: () => { },
|
|
40
|
+
start: () => { },
|
|
41
|
+
stop: () => { },
|
|
42
|
+
pending: false,
|
|
43
|
+
error: null,
|
|
44
|
+
});
|
|
45
|
+
const CountervaluesUserSettingsContext = (0, react_1.createContext)({
|
|
46
|
+
// dummy values that are overriden by the context provider
|
|
47
|
+
trackingPairs: [],
|
|
48
|
+
autofillGaps: true,
|
|
49
|
+
refreshRate: 0,
|
|
50
|
+
marketCapBatchingAfterRank: 0,
|
|
51
|
+
});
|
|
52
|
+
const CountervaluesContext = (0, react_1.createContext)(logic_1.initialState);
|
|
53
|
+
const CountervaluesMarketcapIdsContext = (0, react_1.createContext)([]);
|
|
47
54
|
function trackingPairsHash(a) {
|
|
48
55
|
return a
|
|
49
56
|
.map(p => `${p.from.ticker}:${p.to.ticker}:${p.startDate.toISOString().slice(0, 10) || ""}`)
|
|
50
57
|
.sort()
|
|
51
58
|
.join("|");
|
|
52
59
|
}
|
|
60
|
+
const marketcapRefresh = 30 * 60000;
|
|
61
|
+
const marketcapRefreshOnError = 60000;
|
|
62
|
+
/** Provides market-cap ids via the supplied bridge. */
|
|
63
|
+
function CountervaluesMarketcapProvider({ children, bridge, }) {
|
|
64
|
+
const ids = bridge.useIds();
|
|
65
|
+
const lastUpdated = bridge.useLastUpdated();
|
|
66
|
+
const [, forceUpdate] = (0, react_1.useReducer)(x => x + 1, 0);
|
|
67
|
+
(0, react_1.useEffect)(() => {
|
|
68
|
+
let timeout = null;
|
|
69
|
+
const now = Date.now();
|
|
70
|
+
if (!lastUpdated || now - lastUpdated > marketcapRefresh) {
|
|
71
|
+
bridge.setLoading(true);
|
|
72
|
+
index_1.default.fetchIdsSortedByMarketcap().then(fetchedIds => {
|
|
73
|
+
bridge.setIds(fetchedIds);
|
|
74
|
+
timeout = setTimeout(() => forceUpdate(), marketcapRefresh);
|
|
75
|
+
}, error => {
|
|
76
|
+
(0, logs_1.log)("countervalues", "error fetching marketcap ids " + error);
|
|
77
|
+
bridge.setError(error.message);
|
|
78
|
+
timeout = setTimeout(() => forceUpdate(), marketcapRefreshOnError);
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
timeout = setTimeout(() => forceUpdate(), marketcapRefresh - (now - lastUpdated));
|
|
83
|
+
}
|
|
84
|
+
return () => {
|
|
85
|
+
if (timeout)
|
|
86
|
+
clearTimeout(timeout);
|
|
87
|
+
};
|
|
88
|
+
}, [lastUpdated, bridge]);
|
|
89
|
+
return (react_1.default.createElement(CountervaluesMarketcapIdsContext.Provider, { value: ids }, children));
|
|
90
|
+
}
|
|
91
|
+
exports.CountervaluesMarketcapProvider = CountervaluesMarketcapProvider;
|
|
53
92
|
/**
|
|
54
|
-
*
|
|
93
|
+
* Root countervalues provider (polling + calculation).
|
|
55
94
|
*/
|
|
56
|
-
function
|
|
57
|
-
const
|
|
58
|
-
const { refreshRate, marketCapBatchingAfterRank } = userSettings;
|
|
95
|
+
function CountervaluesProvider({ children, userSettings, pollInitDelay = 3 * 1000, debounceDelay = 1000, savedState, }) {
|
|
96
|
+
const autopollInterval = userSettings.refreshRate;
|
|
59
97
|
const debouncedUserSettings = (0, useDebounce_1.useDebounce)(userSettings, debounceDelay);
|
|
60
|
-
const
|
|
98
|
+
const [{ state, pending, error }, dispatch] = (0, react_1.useReducer)(fetchReducer, initialFetchState);
|
|
99
|
+
// TODO this is always using the initial value, doesn't react to changes.
|
|
100
|
+
const marketcapIds = (0, react_1.useContext)(CountervaluesMarketcapIdsContext);
|
|
101
|
+
const { marketCapBatchingAfterRank } = userSettings;
|
|
61
102
|
const batchStrategySolver = (0, react_1.useMemo)(() => ({
|
|
62
103
|
shouldBatchCurrencyFrom: (currency) => {
|
|
63
104
|
if (currency.type === "FiatCurrency")
|
|
@@ -67,93 +108,104 @@ function Effect({ bridge, savedState, debounceDelay = 1000, pollInitDelay = 3 *
|
|
|
67
108
|
},
|
|
68
109
|
}), [marketCapBatchingAfterRank, marketcapIds]);
|
|
69
110
|
// flag used to trigger a loadCountervalues
|
|
70
|
-
const triggerLoad =
|
|
71
|
-
// trigger poll only when userSettings changes in a debounced way
|
|
111
|
+
const [triggerLoad, setTriggerLoad] = (0, react_1.useState)(false);
|
|
112
|
+
// trigger poll only when userSettings changes. in a debounced way.
|
|
72
113
|
(0, react_1.useEffect)(() => {
|
|
73
|
-
|
|
74
|
-
}, [
|
|
114
|
+
setTriggerLoad(true);
|
|
115
|
+
}, [debouncedUserSettings]);
|
|
75
116
|
// loadCountervalues logic
|
|
76
|
-
const currentState = bridge.useState();
|
|
77
|
-
const pending = bridge.useStatePending();
|
|
78
|
-
// loadCountervalues logic using bridge
|
|
79
117
|
(0, react_1.useEffect)(() => {
|
|
80
118
|
if (pending || !triggerLoad)
|
|
81
119
|
return;
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
(0, logic_1.loadCountervalues)(
|
|
85
|
-
|
|
86
|
-
bridge.setStatePending(false);
|
|
87
|
-
}, e => {
|
|
88
|
-
bridge.setStateError(e);
|
|
89
|
-
bridge.setStatePending(false);
|
|
90
|
-
});
|
|
91
|
-
}, [pending, currentState, userSettings, triggerLoad, batchStrategySolver, bridge]);
|
|
120
|
+
setTriggerLoad(false);
|
|
121
|
+
dispatch({ type: "pending" });
|
|
122
|
+
(0, logic_1.loadCountervalues)(state, userSettings, batchStrategySolver, userSettings.granularitiesRates).then(newState => dispatch({ type: "success", payload: newState }), e => dispatch({ type: "error", payload: e }));
|
|
123
|
+
}, [pending, state, userSettings, triggerLoad, batchStrategySolver]);
|
|
92
124
|
// save the state when it changes
|
|
93
125
|
(0, react_1.useEffect)(() => {
|
|
94
126
|
if (!savedState?.status || !Object.keys(savedState.status).length)
|
|
95
127
|
return;
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
128
|
+
dispatch({
|
|
129
|
+
type: "setCounterValueState",
|
|
130
|
+
payload: (0, logic_1.importCountervalues)(savedState, userSettings),
|
|
131
|
+
});
|
|
132
|
+
}, [savedState, userSettings]);
|
|
133
|
+
// manage the auto polling loop and the interface for user land to trigger a reload
|
|
134
|
+
const [isPolling, setIsPolling] = (0, react_1.useState)(true);
|
|
100
135
|
(0, react_1.useEffect)(() => {
|
|
101
136
|
if (!isPolling)
|
|
102
137
|
return;
|
|
103
138
|
let pollingTimeout;
|
|
104
139
|
function pollingLoop() {
|
|
105
|
-
|
|
106
|
-
pollingTimeout = setTimeout(pollingLoop,
|
|
140
|
+
setTriggerLoad(true);
|
|
141
|
+
pollingTimeout = setTimeout(pollingLoop, autopollInterval);
|
|
107
142
|
}
|
|
108
143
|
pollingTimeout = setTimeout(pollingLoop, pollInitDelay);
|
|
109
144
|
return () => clearTimeout(pollingTimeout);
|
|
110
|
-
}, [
|
|
111
|
-
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
145
|
+
}, [autopollInterval, pollInitDelay, isPolling]);
|
|
146
|
+
const polling = (0, react_1.useMemo)(() => ({
|
|
147
|
+
wipe: () => dispatch({ type: "wipe" }),
|
|
148
|
+
poll: () => setTriggerLoad(true),
|
|
149
|
+
start: () => setIsPolling(true),
|
|
150
|
+
stop: () => setIsPolling(false),
|
|
151
|
+
pending,
|
|
152
|
+
error,
|
|
153
|
+
}), [pending, error]);
|
|
154
|
+
return (react_1.default.createElement(CountervaluesPollingContext.Provider, { value: polling },
|
|
155
|
+
react_1.default.createElement(CountervaluesUserSettingsContext.Provider, { value: userSettings },
|
|
156
|
+
react_1.default.createElement(CountervaluesContext.Provider, { value: state }, children))));
|
|
120
157
|
}
|
|
121
158
|
exports.CountervaluesProvider = CountervaluesProvider;
|
|
159
|
+
const initialFetchState = { state: logic_1.initialState, pending: false };
|
|
160
|
+
function fetchReducer(state, action) {
|
|
161
|
+
switch (action.type) {
|
|
162
|
+
case "success":
|
|
163
|
+
return { state: action.payload, pending: false, error: undefined };
|
|
164
|
+
case "error":
|
|
165
|
+
return { ...state, pending: false, error: action.payload };
|
|
166
|
+
case "pending":
|
|
167
|
+
return { ...state, pending: true, error: undefined };
|
|
168
|
+
case "wipe":
|
|
169
|
+
return { state: logic_1.initialState, pending: false, error: undefined };
|
|
170
|
+
case "setCounterValueState":
|
|
171
|
+
return { ...state, state: action.payload };
|
|
172
|
+
default:
|
|
173
|
+
return state;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
/** Returns market-cap ids. */
|
|
177
|
+
function useMarketcapIds() {
|
|
178
|
+
return (0, react_1.useContext)(CountervaluesMarketcapIdsContext);
|
|
179
|
+
}
|
|
180
|
+
exports.useMarketcapIds = useMarketcapIds;
|
|
122
181
|
/** Returns the full countervalues state. */
|
|
123
182
|
function useCountervaluesState() {
|
|
124
|
-
return
|
|
183
|
+
return (0, react_1.useContext)(CountervaluesContext);
|
|
125
184
|
}
|
|
126
185
|
exports.useCountervaluesState = useCountervaluesState;
|
|
127
|
-
|
|
186
|
+
// allows consumer to access the countervalues polling control object
|
|
128
187
|
function useCountervaluesPolling() {
|
|
129
|
-
|
|
130
|
-
const pending = bridge.useStatePending();
|
|
131
|
-
const error = bridge.useStateError();
|
|
132
|
-
return (0, react_1.useMemo)(() => ({
|
|
133
|
-
poll: () => bridge.setPollingTriggerLoad(true),
|
|
134
|
-
start: () => bridge.setPollingIsPolling(true),
|
|
135
|
-
stop: () => bridge.setPollingIsPolling(false),
|
|
136
|
-
wipe: () => bridge.wipe(),
|
|
137
|
-
pending,
|
|
138
|
-
error,
|
|
139
|
-
}), [bridge, error, pending]);
|
|
188
|
+
return (0, react_1.useContext)(CountervaluesPollingContext);
|
|
140
189
|
}
|
|
141
190
|
exports.useCountervaluesPolling = useCountervaluesPolling;
|
|
142
|
-
|
|
143
|
-
function
|
|
144
|
-
return
|
|
191
|
+
// allows consumer to access the user settings that was used to fetch the countervalues
|
|
192
|
+
function useCountervaluesUserSettingsContext() {
|
|
193
|
+
return (0, react_1.useContext)(CountervaluesUserSettingsContext);
|
|
145
194
|
}
|
|
146
|
-
exports.
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
195
|
+
exports.useCountervaluesUserSettingsContext = useCountervaluesUserSettingsContext;
|
|
196
|
+
// provides an export of the countervalues state
|
|
197
|
+
function useCountervaluesExport() {
|
|
198
|
+
const state = useCountervaluesState();
|
|
199
|
+
return (0, react_1.useMemo)(() => (0, logic_1.exportCountervalues)(state), [state]);
|
|
200
|
+
}
|
|
201
|
+
exports.useCountervaluesExport = useCountervaluesExport;
|
|
202
|
+
// provides a way to calculate a countervalue from a value
|
|
151
203
|
function useCalculate(query) {
|
|
152
204
|
const state = useCountervaluesState();
|
|
153
|
-
return (0,
|
|
205
|
+
return (0, logic_1.calculate)(state, query);
|
|
154
206
|
}
|
|
155
207
|
exports.useCalculate = useCalculate;
|
|
156
|
-
|
|
208
|
+
// provides a way to calculate a countervalue from a value using a callback
|
|
157
209
|
function useCalculateCountervalueCallback({ to, }) {
|
|
158
210
|
const state = useCountervaluesState();
|
|
159
211
|
return (0, react_1.useCallback)((from, value) => {
|
|
@@ -188,10 +240,8 @@ function useSendAmount({ account, fiatCurrency, cryptoAmount, }) {
|
|
|
188
240
|
return { fiatAmount, fiatUnit, calculateCryptoAmount };
|
|
189
241
|
}
|
|
190
242
|
exports.useSendAmount = useSendAmount;
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
* if startDate is undefined, the feature is disabled
|
|
194
|
-
*/
|
|
243
|
+
// infer the tracking pairs for the top coins that the portfolio needs to display itself
|
|
244
|
+
// if startDate is undefined, the feature is disabled
|
|
195
245
|
function useTrackingPairsForTopCoins(marketcapIds, countervalue, size, startDate) {
|
|
196
246
|
const dateTimestamp = startDate?.getTime();
|
|
197
247
|
return (0, react_1.useMemo)(() => dateTimestamp
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|
package/lib-es/index.d.ts
CHANGED
|
@@ -3,28 +3,13 @@ import type { Currency, Unit } from "@ledgerhq/types-cryptoassets";
|
|
|
3
3
|
import type { Account, AccountLike } from "@ledgerhq/types-live";
|
|
4
4
|
import { BigNumber } from "bignumber.js";
|
|
5
5
|
import React, { ReactElement } from "react";
|
|
6
|
-
|
|
7
|
-
export interface
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
* @note: make sure that the object is memoized to avoid re-renders.
|
|
14
|
-
*/
|
|
15
|
-
export interface CountervaluesBridge {
|
|
16
|
-
setPollingIsPolling(polling: boolean): void;
|
|
17
|
-
setPollingTriggerLoad(triggerLoad: boolean): void;
|
|
18
|
-
setState(state: CounterValuesState): void;
|
|
19
|
-
setStateError(error: Error): void;
|
|
20
|
-
setStatePending(pending: boolean): void;
|
|
21
|
-
usePollingIsPolling(): boolean;
|
|
22
|
-
usePollingTriggerLoad(): boolean;
|
|
23
|
-
useStateError(): Error | null;
|
|
24
|
-
useStatePending(): boolean;
|
|
25
|
-
useState(): CounterValuesState;
|
|
26
|
-
useUserSettings(): CountervaluesSettings;
|
|
27
|
-
wipe(): void;
|
|
6
|
+
/** Bridge enabling platform-specific persistence of market-cap ids. */
|
|
7
|
+
export interface CountervaluesMarketcapBridge {
|
|
8
|
+
useIds(): string[];
|
|
9
|
+
useLastUpdated(): number | undefined;
|
|
10
|
+
setLoading(loading: boolean): void;
|
|
11
|
+
setIds(ids: string[]): void;
|
|
12
|
+
setError(message: string): void;
|
|
28
13
|
}
|
|
29
14
|
export type Polling = {
|
|
30
15
|
wipe: () => void;
|
|
@@ -35,35 +20,29 @@ export type Polling = {
|
|
|
35
20
|
error: Error | null | undefined;
|
|
36
21
|
};
|
|
37
22
|
export type Props = {
|
|
38
|
-
/** Bridge enabling platform-specific persistence of countervalues state. */
|
|
39
|
-
bridge: CountervaluesBridge;
|
|
40
23
|
children: React.ReactNode;
|
|
41
|
-
|
|
24
|
+
userSettings: CountervaluesSettings;
|
|
42
25
|
pollInitDelay?: number;
|
|
43
|
-
/** the minimum time to wait before two automatic polls (then one that happen whatever network/appstate events) */
|
|
44
26
|
autopollInterval?: number;
|
|
45
|
-
/** debounce time before actually fetching */
|
|
46
27
|
debounceDelay?: number;
|
|
47
28
|
savedState?: CounterValuesStateRaw;
|
|
48
29
|
};
|
|
49
|
-
/**
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
30
|
+
/** Provides market-cap ids via the supplied bridge. */
|
|
31
|
+
export declare function CountervaluesMarketcapProvider({ children, bridge, }: {
|
|
32
|
+
children: React.ReactNode;
|
|
33
|
+
bridge: CountervaluesMarketcapBridge;
|
|
34
|
+
}): ReactElement;
|
|
53
35
|
/**
|
|
54
36
|
* Root countervalues provider (polling + calculation).
|
|
55
37
|
*/
|
|
56
|
-
export declare function CountervaluesProvider({ children,
|
|
38
|
+
export declare function CountervaluesProvider({ children, userSettings, pollInitDelay, debounceDelay, savedState, }: Props): ReactElement;
|
|
39
|
+
/** Returns market-cap ids. */
|
|
40
|
+
export declare function useMarketcapIds(): string[];
|
|
57
41
|
/** Returns the full countervalues state. */
|
|
58
42
|
export declare function useCountervaluesState(): CounterValuesState;
|
|
59
|
-
/** Allows consumer to access the countervalues polling control object */
|
|
60
43
|
export declare function useCountervaluesPolling(): Polling;
|
|
61
|
-
|
|
62
|
-
export declare function
|
|
63
|
-
/**
|
|
64
|
-
* Provides a way to calculate a countervalue from a value
|
|
65
|
-
* Seems like a major bottleneck, see if it actually needs the full state or we can select only the needed data
|
|
66
|
-
*/
|
|
44
|
+
export declare function useCountervaluesUserSettingsContext(): CountervaluesSettings;
|
|
45
|
+
export declare function useCountervaluesExport(): CounterValuesStateRaw;
|
|
67
46
|
export declare function useCalculate(query: {
|
|
68
47
|
value: number;
|
|
69
48
|
from: Currency;
|
|
@@ -72,7 +51,6 @@ export declare function useCalculate(query: {
|
|
|
72
51
|
date?: Date | null | undefined;
|
|
73
52
|
reverse?: boolean;
|
|
74
53
|
}): number | null | undefined;
|
|
75
|
-
/** Provides a way to calculate a countervalue from a value using a callback */
|
|
76
54
|
export declare function useCalculateCountervalueCallback({ to, }: {
|
|
77
55
|
to: Currency;
|
|
78
56
|
}): (from: Currency, value: BigNumber) => BigNumber | null | undefined;
|
|
@@ -86,10 +64,6 @@ export declare function useSendAmount({ account, fiatCurrency, cryptoAmount, }:
|
|
|
86
64
|
fiatUnit: Unit;
|
|
87
65
|
calculateCryptoAmount: (fiatAmount: BigNumber) => BigNumber;
|
|
88
66
|
};
|
|
89
|
-
/**
|
|
90
|
-
* Infer the tracking pairs for the top coins that the portfolio needs to display itself
|
|
91
|
-
* if startDate is undefined, the feature is disabled
|
|
92
|
-
*/
|
|
93
67
|
export declare function useTrackingPairsForTopCoins(marketcapIds: string[], countervalue: Currency, size: number, startDate: Date | undefined): {
|
|
94
68
|
from: import("@ledgerhq/types-cryptoassets").CryptoCurrency;
|
|
95
69
|
to: Currency;
|
package/lib-es/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|