@ledgerhq/live-countervalues-react 0.3.0 → 0.3.1-nightly.1

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.
@@ -1,4 +1,4 @@
1
1
 
2
- > @ledgerhq/live-countervalues-react@0.3.0 build /home/runner/work/ledger-live/ledger-live/libs/live-countervalues-react
2
+ > @ledgerhq/live-countervalues-react@0.3.1-nightly.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,5 +1,24 @@
1
1
  # @ledgerhq/live-countervalues-react
2
2
 
3
+ ## 0.3.1-nightly.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [[`d41fc9c`](https://github.com/LedgerHQ/ledger-live/commit/d41fc9c458050ef1234c04af9642321c41cecda1)]:
8
+ - @ledgerhq/cryptoassets@13.25.0-nightly.1
9
+ - @ledgerhq/types-live@6.80.0
10
+ - @ledgerhq/coin-framework@6.0.1-nightly.1
11
+ - @ledgerhq/live-countervalues@0.6.1-nightly.1
12
+
13
+ ## 0.3.1-nightly.0
14
+
15
+ ### Patch Changes
16
+
17
+ - Updated dependencies []:
18
+ - @ledgerhq/coin-framework@6.0.1-nightly.0
19
+ - @ledgerhq/cryptoassets@13.24.1-nightly.0
20
+ - @ledgerhq/live-countervalues@0.6.1-nightly.0
21
+
3
22
  ## 0.3.0
4
23
 
5
24
  ### Minor Changes
@@ -0,0 +1,23 @@
1
+ import React, { ReactElement } from "react";
2
+ /**
3
+ * Bridge enabling platform-specific persistence of market-cap ids.
4
+ * NOTE: memoize the object to avoid re-renders.
5
+ */
6
+ export interface CountervaluesMarketcapBridge {
7
+ setError(message: string): void;
8
+ setIds(ids: string[]): void;
9
+ setLoading(loading: boolean): void;
10
+ useIds(): string[];
11
+ useLastUpdated(): number | undefined;
12
+ }
13
+ /**
14
+ * Provides market-cap ids via the supplied bridge.
15
+ */
16
+ export declare function CountervaluesMarketcapProvider({ children, bridge, }: {
17
+ children: React.ReactNode;
18
+ /** @param bridge Contains the functions that interact with the apps' state. Reference needs to be stable */
19
+ bridge: CountervaluesMarketcapBridge;
20
+ }): ReactElement;
21
+ /** Returns market-cap ids. */
22
+ export declare function useMarketcapIds(): string[];
23
+ //# sourceMappingURL=CountervaluesMarketcapProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CountervaluesMarketcapProvider.d.ts","sourceRoot":"","sources":["../src/CountervaluesMarketcapProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,YAAY,EAAoD,MAAM,OAAO,CAAC;AAK9F;;;GAGG;AACH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5B,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,MAAM,IAAI,MAAM,EAAE,CAAC;IACnB,cAAc,IAAI,MAAM,GAAG,SAAS,CAAC;CACtC;AAqDD;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,EAC7C,QAAQ,EACR,MAAM,GACP,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,4GAA4G;IAC5G,MAAM,EAAE,4BAA4B,CAAC;CACtC,GAAG,YAAY,CAOf;AAED,8BAA8B;AAC9B,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAG1C"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.useMarketcapIds = exports.CountervaluesMarketcapProvider = void 0;
30
+ const index_1 = __importDefault(require("@ledgerhq/live-countervalues/api/index"));
31
+ const logs_1 = require("@ledgerhq/logs");
32
+ const react_1 = __importStar(require("react"));
33
+ const MARKETCAP_REFRESH = 30 * 60000;
34
+ const MARKETCAP_REFRESH_ON_ERROR = 60000;
35
+ const CountervaluesMarketcapBridgeContext = (0, react_1.createContext)(null);
36
+ function useCountervaluesMarketcapBridgeContext() {
37
+ const bridge = (0, react_1.useContext)(CountervaluesMarketcapBridgeContext);
38
+ if (!bridge) {
39
+ throw new Error("'useCountervaluesMarketcapBridgeContext' must be used within a 'CountervaluesMarketcapProvider'");
40
+ }
41
+ return bridge;
42
+ }
43
+ /**
44
+ * Call side effects outside of the primary render tree, avoiding costly child re-renders
45
+ * TODO this could be re-written as a side effect only, to avoid dependency on render state.
46
+ */
47
+ function Effect({ bridge }) {
48
+ const lastUpdated = bridge.useLastUpdated();
49
+ const [, forceUpdate] = (0, react_1.useReducer)((x) => x + 1, 0);
50
+ (0, react_1.useEffect)(() => {
51
+ let timeout = null;
52
+ const now = Date.now();
53
+ if (!lastUpdated || now - lastUpdated > MARKETCAP_REFRESH) {
54
+ bridge.setLoading(true);
55
+ index_1.default.fetchIdsSortedByMarketcap().then(fetchedIds => {
56
+ bridge.setIds(fetchedIds);
57
+ timeout = setTimeout(() => forceUpdate(), MARKETCAP_REFRESH);
58
+ }, error => {
59
+ (0, logs_1.log)("countervalues", "error fetching marketcap ids " + error);
60
+ bridge.setError(error.message);
61
+ timeout = setTimeout(() => forceUpdate(), MARKETCAP_REFRESH_ON_ERROR);
62
+ });
63
+ }
64
+ else {
65
+ timeout = setTimeout(() => forceUpdate(), MARKETCAP_REFRESH - (now - lastUpdated));
66
+ }
67
+ return () => {
68
+ if (timeout)
69
+ clearTimeout(timeout);
70
+ };
71
+ }, [lastUpdated, bridge]);
72
+ return null;
73
+ }
74
+ /**
75
+ * Provides market-cap ids via the supplied bridge.
76
+ */
77
+ function CountervaluesMarketcapProvider({ children, bridge, }) {
78
+ return (react_1.default.createElement(CountervaluesMarketcapBridgeContext.Provider, { value: bridge },
79
+ react_1.default.createElement(Effect, { bridge: bridge }),
80
+ children));
81
+ }
82
+ exports.CountervaluesMarketcapProvider = CountervaluesMarketcapProvider;
83
+ /** Returns market-cap ids. */
84
+ function useMarketcapIds() {
85
+ const bridge = useCountervaluesMarketcapBridgeContext();
86
+ return bridge.useIds();
87
+ }
88
+ exports.useMarketcapIds = useMarketcapIds;
89
+ //# sourceMappingURL=CountervaluesMarketcapProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CountervaluesMarketcapProvider.js","sourceRoot":"","sources":["../src/CountervaluesMarketcapProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mFAAyD;AACzD,yCAAqC;AACrC,+CAA8F;AAE9F,MAAM,iBAAiB,GAAG,EAAE,GAAG,KAAK,CAAC;AACrC,MAAM,0BAA0B,GAAG,KAAK,CAAC;AAczC,MAAM,mCAAmC,GAAG,IAAA,qBAAa,EACvD,IAAI,CACL,CAAC;AAEF,SAAS,sCAAsC;IAC7C,MAAM,MAAM,GAAG,IAAA,kBAAU,EAAC,mCAAmC,CAAC,CAAC;IAC/D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,iGAAiG,CAClG,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,MAAM,CAAC,EAAE,MAAM,EAA4C;IAClE,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;IAC5C,MAAM,CAAC,EAAE,WAAW,CAAC,GAAG,IAAA,kBAAU,EAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5D,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,OAAO,GAAyC,IAAI,CAAC;QACzD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,IAAI,CAAC,WAAW,IAAI,GAAG,GAAG,WAAW,GAAG,iBAAiB,EAAE,CAAC;YAC1D,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACxB,eAAG,CAAC,yBAAyB,EAAE,CAAC,IAAI,CAClC,UAAU,CAAC,EAAE;gBACX,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC1B,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,iBAAiB,CAAC,CAAC;YAC/D,CAAC,EACD,KAAK,CAAC,EAAE;gBACN,IAAA,UAAG,EAAC,eAAe,EAAE,+BAA+B,GAAG,KAAK,CAAC,CAAC;gBAC9D,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC/B,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,0BAA0B,CAAC,CAAC;YACxE,CAAC,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,iBAAiB,GAAG,CAAC,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC;QACrF,CAAC;QAED,OAAO,GAAG,EAAE;YACV,IAAI,OAAO;gBAAE,YAAY,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;IAE1B,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,8BAA8B,CAAC,EAC7C,QAAQ,EACR,MAAM,GAKP;IACC,OAAO,CACL,8BAAC,mCAAmC,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM;QACzD,8BAAC,MAAM,IAAC,MAAM,EAAE,MAAM,GAAI;QACzB,QAAQ,CACoC,CAChD,CAAC;AACJ,CAAC;AAdD,wEAcC;AAED,8BAA8B;AAC9B,SAAgB,eAAe;IAC7B,MAAM,MAAM,GAAG,sCAAsC,EAAE,CAAC;IACxD,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC;AACzB,CAAC;AAHD,0CAGC"}
package/lib/index.d.ts CHANGED
@@ -3,13 +3,28 @@ 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
- /** 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;
6
+ export { CountervaluesMarketcapProvider, useMarketcapIds } from "./CountervaluesMarketcapProvider";
7
+ export interface PollingState {
8
+ isPolling: boolean;
9
+ triggerRef: number;
10
+ }
11
+ /**
12
+ * Bridge enabling platform-specific persistence of countervalues state.
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;
13
28
  }
14
29
  export type Polling = {
15
30
  wipe: () => void;
@@ -20,29 +35,35 @@ export type Polling = {
20
35
  error: Error | null | undefined;
21
36
  };
22
37
  export type Props = {
38
+ /** Bridge enabling platform-specific persistence of countervalues state. */
39
+ bridge: CountervaluesBridge;
23
40
  children: React.ReactNode;
24
- userSettings: CountervaluesSettings;
41
+ /** the time to wait before the first poll when app starts (allow things to render to not do all at boot time) */
25
42
  pollInitDelay?: number;
43
+ /** the minimum time to wait before two automatic polls (then one that happen whatever network/appstate events) */
26
44
  autopollInterval?: number;
45
+ /** debounce time before actually fetching */
27
46
  debounceDelay?: number;
28
47
  savedState?: CounterValuesStateRaw;
29
48
  };
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;
49
+ /**
50
+ * Base Countervalues Context to use without polling logic.
51
+ */
52
+ export declare const CountervaluesContext: React.Context<CountervaluesBridge | null>;
35
53
  /**
36
54
  * Root countervalues provider (polling + calculation).
37
55
  */
38
- export declare function CountervaluesProvider({ children, userSettings, pollInitDelay, debounceDelay, savedState, }: Props): ReactElement;
39
- /** Returns market-cap ids. */
40
- export declare function useMarketcapIds(): string[];
56
+ export declare function CountervaluesProvider({ children, bridge, ...rest }: Props): ReactElement;
41
57
  /** Returns the full countervalues state. */
42
58
  export declare function useCountervaluesState(): CounterValuesState;
59
+ /** Allows consumer to access the countervalues polling control object */
43
60
  export declare function useCountervaluesPolling(): Polling;
44
- export declare function useCountervaluesUserSettingsContext(): CountervaluesSettings;
45
- export declare function useCountervaluesExport(): CounterValuesStateRaw;
61
+ /** Allows consumer to access the user settings that was used to fetch the countervalues */
62
+ export declare function useCountervaluesUserSettings(): CountervaluesSettings;
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
+ */
46
67
  export declare function useCalculate(query: {
47
68
  value: number;
48
69
  from: Currency;
@@ -51,6 +72,7 @@ export declare function useCalculate(query: {
51
72
  date?: Date | null | undefined;
52
73
  reverse?: boolean;
53
74
  }): number | null | undefined;
75
+ /** Provides a way to calculate a countervalue from a value using a callback */
54
76
  export declare function useCalculateCountervalueCallback({ to, }: {
55
77
  to: Currency;
56
78
  }): (from: Currency, value: BigNumber) => BigNumber | null | undefined;
@@ -64,6 +86,10 @@ export declare function useSendAmount({ account, fiatCurrency, cryptoAmount, }:
64
86
  fiatUnit: Unit;
65
87
  calculateCryptoAmount: (fiatAmount: BigNumber) => BigNumber;
66
88
  };
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
+ */
67
93
  export declare function useTrackingPairsForTopCoins(marketcapIds: string[], countervalue: Currency, size: number, startDate: Date | undefined): {
68
94
  from: import("@ledgerhq/types-cryptoassets").CryptoCurrency;
69
95
  to: Currency;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
package/lib/index.js CHANGED
@@ -22,83 +22,42 @@ 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
- };
28
25
  Object.defineProperty(exports, "__esModule", { value: true });
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;
26
+ exports.useTrackingPairForAccounts = exports.useTrackingPairsForTopCoins = exports.useSendAmount = exports.useCalculateCountervalueCallback = exports.useCalculate = exports.useCountervaluesUserSettings = exports.useCountervaluesPolling = exports.useCountervaluesState = exports.CountervaluesProvider = exports.CountervaluesContext = exports.useMarketcapIds = exports.CountervaluesMarketcapProvider = void 0;
30
27
  const helpers_1 = require("@ledgerhq/coin-framework/account/helpers");
31
- const index_1 = __importDefault(require("@ledgerhq/live-countervalues/api/index"));
32
28
  const logic_1 = require("@ledgerhq/live-countervalues/logic");
33
29
  const useDebounce_1 = require("@ledgerhq/live-hooks/useDebounce");
34
- const logs_1 = require("@ledgerhq/logs");
35
30
  const bignumber_js_1 = require("bignumber.js");
36
31
  const react_1 = __importStar(require("react"));
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)([]);
32
+ const CountervaluesMarketcapProvider_1 = require("./CountervaluesMarketcapProvider");
33
+ var CountervaluesMarketcapProvider_2 = require("./CountervaluesMarketcapProvider");
34
+ Object.defineProperty(exports, "CountervaluesMarketcapProvider", { enumerable: true, get: function () { return CountervaluesMarketcapProvider_2.CountervaluesMarketcapProvider; } });
35
+ Object.defineProperty(exports, "useMarketcapIds", { enumerable: true, get: function () { return CountervaluesMarketcapProvider_2.useMarketcapIds; } });
36
+ /**
37
+ * Base Countervalues Context to use without polling logic.
38
+ */
39
+ exports.CountervaluesContext = (0, react_1.createContext)(null);
40
+ function useCountervaluesBridgeContext() {
41
+ const bridge = (0, react_1.useContext)(exports.CountervaluesContext);
42
+ if (!bridge) {
43
+ throw new Error("'useCountervaluesBridgeContext' must be used within a 'CountervaluesProvider'");
44
+ }
45
+ return bridge;
46
+ }
54
47
  function trackingPairsHash(a) {
55
48
  return a
56
49
  .map(p => `${p.from.ticker}:${p.to.ticker}:${p.startDate.toISOString().slice(0, 10) || ""}`)
57
50
  .sort()
58
51
  .join("|");
59
52
  }
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;
92
53
  /**
93
- * Root countervalues provider (polling + calculation).
54
+ * Call side effects outside of the primary render tree, avoiding costly child re-renders
94
55
  */
95
- function CountervaluesProvider({ children, userSettings, pollInitDelay = 3 * 1000, debounceDelay = 1000, savedState, }) {
96
- const autopollInterval = userSettings.refreshRate;
56
+ function Effect({ bridge, savedState, debounceDelay = 1000, pollInitDelay = 3 * 1000, }) {
57
+ const userSettings = bridge.useUserSettings();
58
+ const { refreshRate, marketCapBatchingAfterRank } = userSettings;
97
59
  const debouncedUserSettings = (0, useDebounce_1.useDebounce)(userSettings, debounceDelay);
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;
60
+ const marketcapIds = (0, CountervaluesMarketcapProvider_1.useMarketcapIds)();
102
61
  const batchStrategySolver = (0, react_1.useMemo)(() => ({
103
62
  shouldBatchCurrencyFrom: (currency) => {
104
63
  if (currency.type === "FiatCurrency")
@@ -108,104 +67,93 @@ function CountervaluesProvider({ children, userSettings, pollInitDelay = 3 * 100
108
67
  },
109
68
  }), [marketCapBatchingAfterRank, marketcapIds]);
110
69
  // flag used to trigger a loadCountervalues
111
- const [triggerLoad, setTriggerLoad] = (0, react_1.useState)(false);
112
- // trigger poll only when userSettings changes. in a debounced way.
70
+ const triggerLoad = bridge.usePollingTriggerLoad();
71
+ // trigger poll only when userSettings changes in a debounced way
113
72
  (0, react_1.useEffect)(() => {
114
- setTriggerLoad(true);
115
- }, [debouncedUserSettings]);
73
+ bridge.setPollingTriggerLoad(true);
74
+ }, [bridge, debouncedUserSettings]);
116
75
  // loadCountervalues logic
76
+ const currentState = bridge.useState();
77
+ const pending = bridge.useStatePending();
78
+ // loadCountervalues logic using bridge
117
79
  (0, react_1.useEffect)(() => {
118
80
  if (pending || !triggerLoad)
119
81
  return;
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]);
82
+ bridge.setPollingTriggerLoad(false);
83
+ bridge.setStatePending(true);
84
+ (0, logic_1.loadCountervalues)(currentState, userSettings, batchStrategySolver, userSettings.granularitiesRates).then(s => {
85
+ bridge.setState(s);
86
+ bridge.setStatePending(false);
87
+ }, e => {
88
+ bridge.setStateError(e);
89
+ bridge.setStatePending(false);
90
+ });
91
+ }, [pending, currentState, userSettings, triggerLoad, batchStrategySolver, bridge]);
124
92
  // save the state when it changes
125
93
  (0, react_1.useEffect)(() => {
126
94
  if (!savedState?.status || !Object.keys(savedState.status).length)
127
95
  return;
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);
96
+ bridge.setState((0, logic_1.importCountervalues)(savedState, userSettings));
97
+ }, [bridge, savedState, userSettings]);
98
+ // manage the auto polling loop
99
+ const isPolling = bridge.usePollingIsPolling();
135
100
  (0, react_1.useEffect)(() => {
136
101
  if (!isPolling)
137
102
  return;
138
103
  let pollingTimeout;
139
104
  function pollingLoop() {
140
- setTriggerLoad(true);
141
- pollingTimeout = setTimeout(pollingLoop, autopollInterval);
105
+ bridge.setPollingTriggerLoad(true);
106
+ pollingTimeout = setTimeout(pollingLoop, refreshRate);
142
107
  }
143
108
  pollingTimeout = setTimeout(pollingLoop, pollInitDelay);
144
109
  return () => clearTimeout(pollingTimeout);
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))));
110
+ }, [refreshRate, pollInitDelay, isPolling, bridge]);
111
+ return null;
157
112
  }
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);
113
+ /**
114
+ * Root countervalues provider (polling + calculation).
115
+ */
116
+ function CountervaluesProvider({ children, bridge, ...rest }) {
117
+ return (react_1.default.createElement(exports.CountervaluesContext.Provider, { value: bridge },
118
+ react_1.default.createElement(Effect, { ...rest, bridge: bridge }),
119
+ children));
179
120
  }
180
- exports.useMarketcapIds = useMarketcapIds;
121
+ exports.CountervaluesProvider = CountervaluesProvider;
181
122
  /** Returns the full countervalues state. */
182
123
  function useCountervaluesState() {
183
- return (0, react_1.useContext)(CountervaluesContext);
124
+ return useCountervaluesBridgeContext().useState();
184
125
  }
185
126
  exports.useCountervaluesState = useCountervaluesState;
186
- // allows consumer to access the countervalues polling control object
127
+ /** Allows consumer to access the countervalues polling control object */
187
128
  function useCountervaluesPolling() {
188
- return (0, react_1.useContext)(CountervaluesPollingContext);
129
+ const bridge = useCountervaluesBridgeContext();
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]);
189
140
  }
190
141
  exports.useCountervaluesPolling = useCountervaluesPolling;
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);
194
- }
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]);
142
+ /** Allows consumer to access the user settings that was used to fetch the countervalues */
143
+ function useCountervaluesUserSettings() {
144
+ return useCountervaluesBridgeContext().useUserSettings();
200
145
  }
201
- exports.useCountervaluesExport = useCountervaluesExport;
202
- // provides a way to calculate a countervalue from a value
146
+ exports.useCountervaluesUserSettings = useCountervaluesUserSettings;
147
+ /**
148
+ * Provides a way to calculate a countervalue from a value
149
+ * Seems like a major bottleneck, see if it actually needs the full state or we can select only the needed data
150
+ */
203
151
  function useCalculate(query) {
204
152
  const state = useCountervaluesState();
205
- return (0, logic_1.calculate)(state, query);
153
+ return (0, react_1.useMemo)(() => (0, logic_1.calculate)(state, query), [state, query]);
206
154
  }
207
155
  exports.useCalculate = useCalculate;
208
- // provides a way to calculate a countervalue from a value using a callback
156
+ /** Provides a way to calculate a countervalue from a value using a callback */
209
157
  function useCalculateCountervalueCallback({ to, }) {
210
158
  const state = useCountervaluesState();
211
159
  return (0, react_1.useCallback)((from, value) => {
@@ -240,8 +188,10 @@ function useSendAmount({ account, fiatCurrency, cryptoAmount, }) {
240
188
  return { fiatAmount, fiatUnit, calculateCryptoAmount };
241
189
  }
242
190
  exports.useSendAmount = useSendAmount;
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
191
+ /**
192
+ * Infer the tracking pairs for the top coins that the portfolio needs to display itself
193
+ * if startDate is undefined, the feature is disabled
194
+ */
245
195
  function useTrackingPairsForTopCoins(marketcapIds, countervalue, size, startDate) {
246
196
  const dateTimestamp = startDate?.getTime();
247
197
  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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import React, { ReactElement } from "react";
2
+ /**
3
+ * Bridge enabling platform-specific persistence of market-cap ids.
4
+ * NOTE: memoize the object to avoid re-renders.
5
+ */
6
+ export interface CountervaluesMarketcapBridge {
7
+ setError(message: string): void;
8
+ setIds(ids: string[]): void;
9
+ setLoading(loading: boolean): void;
10
+ useIds(): string[];
11
+ useLastUpdated(): number | undefined;
12
+ }
13
+ /**
14
+ * Provides market-cap ids via the supplied bridge.
15
+ */
16
+ export declare function CountervaluesMarketcapProvider({ children, bridge, }: {
17
+ children: React.ReactNode;
18
+ /** @param bridge Contains the functions that interact with the apps' state. Reference needs to be stable */
19
+ bridge: CountervaluesMarketcapBridge;
20
+ }): ReactElement;
21
+ /** Returns market-cap ids. */
22
+ export declare function useMarketcapIds(): string[];
23
+ //# sourceMappingURL=CountervaluesMarketcapProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CountervaluesMarketcapProvider.d.ts","sourceRoot":"","sources":["../src/CountervaluesMarketcapProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,YAAY,EAAoD,MAAM,OAAO,CAAC;AAK9F;;;GAGG;AACH,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5B,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACnC,MAAM,IAAI,MAAM,EAAE,CAAC;IACnB,cAAc,IAAI,MAAM,GAAG,SAAS,CAAC;CACtC;AAqDD;;GAEG;AACH,wBAAgB,8BAA8B,CAAC,EAC7C,QAAQ,EACR,MAAM,GACP,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,4GAA4G;IAC5G,MAAM,EAAE,4BAA4B,CAAC;CACtC,GAAG,YAAY,CAOf;AAED,8BAA8B;AAC9B,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAG1C"}