@ledgerhq/live-common 34.33.0-nightly.1 → 34.33.0-nightly.3
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/market/hooks/useLargeMoverDataProvider.d.ts +17 -0
- package/lib/market/hooks/useLargeMoverDataProvider.d.ts.map +1 -0
- package/lib/market/hooks/useLargeMoverDataProvider.js +48 -0
- package/lib/market/hooks/useLargeMoverDataProvider.js.map +1 -0
- package/lib-es/market/hooks/useLargeMoverDataProvider.d.ts +17 -0
- package/lib-es/market/hooks/useLargeMoverDataProvider.d.ts.map +1 -0
- package/lib-es/market/hooks/useLargeMoverDataProvider.js +44 -0
- package/lib-es/market/hooks/useLargeMoverDataProvider.js.map +1 -0
- package/package.json +4 -4
- package/src/market/hooks/useLargeMoverDataProvider.ts +70 -0
@@ -0,0 +1,17 @@
|
|
1
|
+
import { CurrencyData, MarketCoinDataChart } from "../utils/types";
|
2
|
+
type UseLargeMoverDataProviderParams = {
|
3
|
+
ids: string[];
|
4
|
+
counterCurrency: string;
|
5
|
+
range: string;
|
6
|
+
};
|
7
|
+
export declare const useLargeMoverDataProvider: ({ ids, counterCurrency, range, }: UseLargeMoverDataProviderParams) => {
|
8
|
+
currencies: {
|
9
|
+
id: string;
|
10
|
+
data?: CurrencyData;
|
11
|
+
chartData?: MarketCoinDataChart;
|
12
|
+
isLoading: boolean;
|
13
|
+
isError: boolean;
|
14
|
+
}[];
|
15
|
+
};
|
16
|
+
export {};
|
17
|
+
//# sourceMappingURL=useLargeMoverDataProvider.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useLargeMoverDataProvider.d.ts","sourceRoot":"","sources":["../../../src/market/hooks/useLargeMoverDataProvider.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAsB,MAAM,gBAAgB,CAAC;AAMvF,KAAK,+BAA+B,GAAG;IACrC,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAMF,eAAO,MAAM,yBAAyB,qCAInC,+BAA+B;gBACpB;QACV,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,CAAC,EAAE,YAAY,CAAC;QACpB,SAAS,CAAC,EAAE,mBAAmB,CAAC;QAChC,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;KAClB,EAAE;CAsCJ,CAAC"}
|
@@ -0,0 +1,48 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.useLargeMoverDataProvider = void 0;
|
4
|
+
const react_query_1 = require("@tanstack/react-query");
|
5
|
+
const api_1 = require("../api");
|
6
|
+
const queryKeys_1 = require("../utils/queryKeys");
|
7
|
+
const timers_1 = require("../utils/timers");
|
8
|
+
const currencyFormatter_1 = require("../utils/currencyFormatter");
|
9
|
+
const currencies_1 = require("@ledgerhq/cryptoassets/currencies");
|
10
|
+
const cryptoCurrenciesList = [...(0, currencies_1.listCryptoCurrencies)()];
|
11
|
+
function mapIdsToQueries(ids, queries) {
|
12
|
+
return Object.fromEntries(ids.map((id, index) => [id, queries[index]]));
|
13
|
+
}
|
14
|
+
const useLargeMoverDataProvider = ({ ids, counterCurrency, range, }) => {
|
15
|
+
const currencyQueries = (0, react_query_1.useQueries)({
|
16
|
+
queries: ids.map(id => ({
|
17
|
+
queryKey: [queryKeys_1.QUERY_KEY.CurrencyDataRaw, id, counterCurrency],
|
18
|
+
queryFn: () => (0, api_1.fetchCurrency)({ id, counterCurrency }),
|
19
|
+
refetchInterval: timers_1.REFETCH_TIME_ONE_MINUTE * timers_1.BASIC_REFETCH,
|
20
|
+
staleTime: timers_1.REFETCH_TIME_ONE_MINUTE * timers_1.BASIC_REFETCH,
|
21
|
+
select: (data) => (0, currencyFormatter_1.format)(data, cryptoCurrenciesList),
|
22
|
+
})),
|
23
|
+
});
|
24
|
+
const chartQueries = (0, react_query_1.useQueries)({
|
25
|
+
queries: ids.map(id => ({
|
26
|
+
queryKey: [queryKeys_1.QUERY_KEY.CurrencyChartData, id, counterCurrency, range],
|
27
|
+
queryFn: () => (0, api_1.fetchCurrencyChartData)({ id, counterCurrency, range }),
|
28
|
+
refetchInterval: timers_1.REFETCH_TIME_ONE_MINUTE * timers_1.BASIC_REFETCH,
|
29
|
+
staleTime: timers_1.REFETCH_TIME_ONE_MINUTE * timers_1.BASIC_REFETCH,
|
30
|
+
})),
|
31
|
+
});
|
32
|
+
const currencyQueryMap = mapIdsToQueries(ids, currencyQueries);
|
33
|
+
const chartQueryMap = mapIdsToQueries(ids, chartQueries);
|
34
|
+
const currencies = ids.map(id => {
|
35
|
+
const currencyQuery = currencyQueryMap[id];
|
36
|
+
const chartQuery = chartQueryMap[id];
|
37
|
+
return {
|
38
|
+
id,
|
39
|
+
data: currencyQuery?.data,
|
40
|
+
chartData: chartQuery?.data,
|
41
|
+
isLoading: currencyQuery?.isLoading || chartQuery?.isLoading || false,
|
42
|
+
isError: currencyQuery?.isError || chartQuery?.isError || false,
|
43
|
+
};
|
44
|
+
});
|
45
|
+
return { currencies };
|
46
|
+
};
|
47
|
+
exports.useLargeMoverDataProvider = useLargeMoverDataProvider;
|
48
|
+
//# sourceMappingURL=useLargeMoverDataProvider.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useLargeMoverDataProvider.js","sourceRoot":"","sources":["../../../src/market/hooks/useLargeMoverDataProvider.ts"],"names":[],"mappings":";;;AAAA,uDAAmD;AACnD,gCAA+D;AAC/D,kDAA+C;AAC/C,4CAAyE;AAEzE,kEAAoD;AACpD,kEAAyE;AAEzE,MAAM,oBAAoB,GAAG,CAAC,GAAG,IAAA,iCAAoB,GAAE,CAAC,CAAC;AAQzD,SAAS,eAAe,CAAI,GAAa,EAAE,OAAY;IACrD,OAAO,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC;AAEM,MAAM,yBAAyB,GAAG,CAAC,EACxC,GAAG,EACH,eAAe,EACf,KAAK,GAC2B,EAQhC,EAAE;IACF,MAAM,eAAe,GAAG,IAAA,wBAAU,EAAC;QACjC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACtB,QAAQ,EAAE,CAAC,qBAAS,CAAC,eAAe,EAAE,EAAE,EAAE,eAAe,CAAC;YAC1D,OAAO,EAAE,GAAG,EAAE,CAAC,IAAA,mBAAa,EAAC,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC;YACrD,eAAe,EAAE,gCAAuB,GAAG,sBAAa;YACxD,SAAS,EAAE,gCAAuB,GAAG,sBAAa;YAClD,MAAM,EAAE,CAAC,IAAwB,EAAE,EAAE,CAAC,IAAA,0BAAM,EAAC,IAAI,EAAE,oBAAoB,CAAC;SACzE,CAAC,CAAC;KACJ,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,IAAA,wBAAU,EAAC;QAC9B,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACtB,QAAQ,EAAE,CAAC,qBAAS,CAAC,iBAAiB,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC;YACnE,OAAO,EAAE,GAAG,EAAE,CAAC,IAAA,4BAAsB,EAAC,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;YACrE,eAAe,EAAE,gCAAuB,GAAG,sBAAa;YACxD,SAAS,EAAE,gCAAuB,GAAG,sBAAa;SACnD,CAAC,CAAC;KACJ,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAG,eAAe,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAEzD,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAC9B,MAAM,aAAa,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QAErC,OAAO;YACL,EAAE;YACF,IAAI,EAAE,aAAa,EAAE,IAAI;YACzB,SAAS,EAAE,UAAU,EAAE,IAAI;YAC3B,SAAS,EAAE,aAAa,EAAE,SAAS,IAAI,UAAU,EAAE,SAAS,IAAI,KAAK;YACrE,OAAO,EAAE,aAAa,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,IAAI,KAAK;SAChE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,UAAU,EAAE,CAAC;AACxB,CAAC,CAAC;AAjDW,QAAA,yBAAyB,6BAiDpC"}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { CurrencyData, MarketCoinDataChart } from "../utils/types";
|
2
|
+
type UseLargeMoverDataProviderParams = {
|
3
|
+
ids: string[];
|
4
|
+
counterCurrency: string;
|
5
|
+
range: string;
|
6
|
+
};
|
7
|
+
export declare const useLargeMoverDataProvider: ({ ids, counterCurrency, range, }: UseLargeMoverDataProviderParams) => {
|
8
|
+
currencies: {
|
9
|
+
id: string;
|
10
|
+
data?: CurrencyData;
|
11
|
+
chartData?: MarketCoinDataChart;
|
12
|
+
isLoading: boolean;
|
13
|
+
isError: boolean;
|
14
|
+
}[];
|
15
|
+
};
|
16
|
+
export {};
|
17
|
+
//# sourceMappingURL=useLargeMoverDataProvider.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useLargeMoverDataProvider.d.ts","sourceRoot":"","sources":["../../../src/market/hooks/useLargeMoverDataProvider.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAsB,MAAM,gBAAgB,CAAC;AAMvF,KAAK,+BAA+B,GAAG;IACrC,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAMF,eAAO,MAAM,yBAAyB,qCAInC,+BAA+B;gBACpB;QACV,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,CAAC,EAAE,YAAY,CAAC;QACpB,SAAS,CAAC,EAAE,mBAAmB,CAAC;QAChC,SAAS,EAAE,OAAO,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;KAClB,EAAE;CAsCJ,CAAC"}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
import { useQueries } from "@tanstack/react-query";
|
2
|
+
import { fetchCurrency, fetchCurrencyChartData } from "../api";
|
3
|
+
import { QUERY_KEY } from "../utils/queryKeys";
|
4
|
+
import { REFETCH_TIME_ONE_MINUTE, BASIC_REFETCH } from "../utils/timers";
|
5
|
+
import { format } from "../utils/currencyFormatter";
|
6
|
+
import { listCryptoCurrencies } from "@ledgerhq/cryptoassets/currencies";
|
7
|
+
const cryptoCurrenciesList = [...listCryptoCurrencies()];
|
8
|
+
function mapIdsToQueries(ids, queries) {
|
9
|
+
return Object.fromEntries(ids.map((id, index) => [id, queries[index]]));
|
10
|
+
}
|
11
|
+
export const useLargeMoverDataProvider = ({ ids, counterCurrency, range, }) => {
|
12
|
+
const currencyQueries = useQueries({
|
13
|
+
queries: ids.map(id => ({
|
14
|
+
queryKey: [QUERY_KEY.CurrencyDataRaw, id, counterCurrency],
|
15
|
+
queryFn: () => fetchCurrency({ id, counterCurrency }),
|
16
|
+
refetchInterval: REFETCH_TIME_ONE_MINUTE * BASIC_REFETCH,
|
17
|
+
staleTime: REFETCH_TIME_ONE_MINUTE * BASIC_REFETCH,
|
18
|
+
select: (data) => format(data, cryptoCurrenciesList),
|
19
|
+
})),
|
20
|
+
});
|
21
|
+
const chartQueries = useQueries({
|
22
|
+
queries: ids.map(id => ({
|
23
|
+
queryKey: [QUERY_KEY.CurrencyChartData, id, counterCurrency, range],
|
24
|
+
queryFn: () => fetchCurrencyChartData({ id, counterCurrency, range }),
|
25
|
+
refetchInterval: REFETCH_TIME_ONE_MINUTE * BASIC_REFETCH,
|
26
|
+
staleTime: REFETCH_TIME_ONE_MINUTE * BASIC_REFETCH,
|
27
|
+
})),
|
28
|
+
});
|
29
|
+
const currencyQueryMap = mapIdsToQueries(ids, currencyQueries);
|
30
|
+
const chartQueryMap = mapIdsToQueries(ids, chartQueries);
|
31
|
+
const currencies = ids.map(id => {
|
32
|
+
const currencyQuery = currencyQueryMap[id];
|
33
|
+
const chartQuery = chartQueryMap[id];
|
34
|
+
return {
|
35
|
+
id,
|
36
|
+
data: currencyQuery?.data,
|
37
|
+
chartData: chartQuery?.data,
|
38
|
+
isLoading: currencyQuery?.isLoading || chartQuery?.isLoading || false,
|
39
|
+
isError: currencyQuery?.isError || chartQuery?.isError || false,
|
40
|
+
};
|
41
|
+
});
|
42
|
+
return { currencies };
|
43
|
+
};
|
44
|
+
//# sourceMappingURL=useLargeMoverDataProvider.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"useLargeMoverDataProvider.js","sourceRoot":"","sources":["../../../src/market/hooks/useLargeMoverDataProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,QAAQ,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,uBAAuB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEzE,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEzE,MAAM,oBAAoB,GAAG,CAAC,GAAG,oBAAoB,EAAE,CAAC,CAAC;AAQzD,SAAS,eAAe,CAAI,GAAa,EAAE,OAAY;IACrD,OAAO,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,EACxC,GAAG,EACH,eAAe,EACf,KAAK,GAC2B,EAQhC,EAAE;IACF,MAAM,eAAe,GAAG,UAAU,CAAC;QACjC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACtB,QAAQ,EAAE,CAAC,SAAS,CAAC,eAAe,EAAE,EAAE,EAAE,eAAe,CAAC;YAC1D,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,eAAe,EAAE,CAAC;YACrD,eAAe,EAAE,uBAAuB,GAAG,aAAa;YACxD,SAAS,EAAE,uBAAuB,GAAG,aAAa;YAClD,MAAM,EAAE,CAAC,IAAwB,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,oBAAoB,CAAC;SACzE,CAAC,CAAC;KACJ,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,UAAU,CAAC;QAC9B,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACtB,QAAQ,EAAE,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC;YACnE,OAAO,EAAE,GAAG,EAAE,CAAC,sBAAsB,CAAC,EAAE,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;YACrE,eAAe,EAAE,uBAAuB,GAAG,aAAa;YACxD,SAAS,EAAE,uBAAuB,GAAG,aAAa;SACnD,CAAC,CAAC;KACJ,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,eAAe,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAG,eAAe,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAEzD,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAC9B,MAAM,aAAa,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QAErC,OAAO;YACL,EAAE;YACF,IAAI,EAAE,aAAa,EAAE,IAAI;YACzB,SAAS,EAAE,UAAU,EAAE,IAAI;YAC3B,SAAS,EAAE,aAAa,EAAE,SAAS,IAAI,UAAU,EAAE,SAAS,IAAI,KAAK;YACrE,OAAO,EAAE,aAAa,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,IAAI,KAAK;SAChE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,UAAU,EAAE,CAAC;AACxB,CAAC,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.33.0-nightly.
|
4
|
+
"version": "34.33.0-nightly.3",
|
5
5
|
"repository": {
|
6
6
|
"type": "git",
|
7
7
|
"url": "https://github.com/LedgerHQ/ledger-live.git"
|
@@ -179,16 +179,16 @@
|
|
179
179
|
"@ledgerhq/coin-multiversx": "^0.4.5-nightly.0",
|
180
180
|
"@ledgerhq/coin-near": "^0.11.5-nightly.0",
|
181
181
|
"@ledgerhq/coin-polkadot": "^6.0.1-nightly.1",
|
182
|
-
"@ledgerhq/coin-solana": "^0.22.0-nightly.
|
182
|
+
"@ledgerhq/coin-solana": "^0.22.0-nightly.2",
|
183
183
|
"@ledgerhq/coin-stacks": "^0.8.5-nightly.0",
|
184
184
|
"@ledgerhq/coin-stellar": "^5.0.1-nightly.0",
|
185
185
|
"@ledgerhq/coin-sui": "^0.3.2-nightly.0",
|
186
186
|
"@ledgerhq/coin-tezos": "^5.0.1-nightly.0",
|
187
187
|
"@ledgerhq/coin-ton": "^0.9.2-nightly.0",
|
188
|
-
"@ledgerhq/coin-tron": "^3.0
|
188
|
+
"@ledgerhq/coin-tron": "^3.1.0-nightly.1",
|
189
189
|
"@ledgerhq/coin-vechain": "^2.7.5-nightly.0",
|
190
190
|
"@ledgerhq/coin-xrp": "^6.0.1-nightly.0",
|
191
|
-
"@ledgerhq/crypto-icons-ui": "^1.
|
191
|
+
"@ledgerhq/crypto-icons-ui": "^1.14.0-nightly.0",
|
192
192
|
"@ledgerhq/cryptoassets": "^13.16.0",
|
193
193
|
"@ledgerhq/device-core": "^0.4.24-nightly.0",
|
194
194
|
"@ledgerhq/devices": "8.4.5-nightly.0",
|
@@ -0,0 +1,70 @@
|
|
1
|
+
import { useQueries } from "@tanstack/react-query";
|
2
|
+
import { fetchCurrency, fetchCurrencyChartData } from "../api";
|
3
|
+
import { QUERY_KEY } from "../utils/queryKeys";
|
4
|
+
import { REFETCH_TIME_ONE_MINUTE, BASIC_REFETCH } from "../utils/timers";
|
5
|
+
import { CurrencyData, MarketCoinDataChart, MarketItemResponse } from "../utils/types";
|
6
|
+
import { format } from "../utils/currencyFormatter";
|
7
|
+
import { listCryptoCurrencies } from "@ledgerhq/cryptoassets/currencies";
|
8
|
+
|
9
|
+
const cryptoCurrenciesList = [...listCryptoCurrencies()];
|
10
|
+
|
11
|
+
type UseLargeMoverDataProviderParams = {
|
12
|
+
ids: string[];
|
13
|
+
counterCurrency: string;
|
14
|
+
range: string;
|
15
|
+
};
|
16
|
+
|
17
|
+
function mapIdsToQueries<T>(ids: string[], queries: T[]): Record<string, T> {
|
18
|
+
return Object.fromEntries(ids.map((id, index) => [id, queries[index]]));
|
19
|
+
}
|
20
|
+
|
21
|
+
export const useLargeMoverDataProvider = ({
|
22
|
+
ids,
|
23
|
+
counterCurrency,
|
24
|
+
range,
|
25
|
+
}: UseLargeMoverDataProviderParams): {
|
26
|
+
currencies: {
|
27
|
+
id: string;
|
28
|
+
data?: CurrencyData;
|
29
|
+
chartData?: MarketCoinDataChart;
|
30
|
+
isLoading: boolean;
|
31
|
+
isError: boolean;
|
32
|
+
}[];
|
33
|
+
} => {
|
34
|
+
const currencyQueries = useQueries({
|
35
|
+
queries: ids.map(id => ({
|
36
|
+
queryKey: [QUERY_KEY.CurrencyDataRaw, id, counterCurrency],
|
37
|
+
queryFn: () => fetchCurrency({ id, counterCurrency }),
|
38
|
+
refetchInterval: REFETCH_TIME_ONE_MINUTE * BASIC_REFETCH,
|
39
|
+
staleTime: REFETCH_TIME_ONE_MINUTE * BASIC_REFETCH,
|
40
|
+
select: (data: MarketItemResponse) => format(data, cryptoCurrenciesList),
|
41
|
+
})),
|
42
|
+
});
|
43
|
+
|
44
|
+
const chartQueries = useQueries({
|
45
|
+
queries: ids.map(id => ({
|
46
|
+
queryKey: [QUERY_KEY.CurrencyChartData, id, counterCurrency, range],
|
47
|
+
queryFn: () => fetchCurrencyChartData({ id, counterCurrency, range }),
|
48
|
+
refetchInterval: REFETCH_TIME_ONE_MINUTE * BASIC_REFETCH,
|
49
|
+
staleTime: REFETCH_TIME_ONE_MINUTE * BASIC_REFETCH,
|
50
|
+
})),
|
51
|
+
});
|
52
|
+
|
53
|
+
const currencyQueryMap = mapIdsToQueries(ids, currencyQueries);
|
54
|
+
const chartQueryMap = mapIdsToQueries(ids, chartQueries);
|
55
|
+
|
56
|
+
const currencies = ids.map(id => {
|
57
|
+
const currencyQuery = currencyQueryMap[id];
|
58
|
+
const chartQuery = chartQueryMap[id];
|
59
|
+
|
60
|
+
return {
|
61
|
+
id,
|
62
|
+
data: currencyQuery?.data,
|
63
|
+
chartData: chartQuery?.data,
|
64
|
+
isLoading: currencyQuery?.isLoading || chartQuery?.isLoading || false,
|
65
|
+
isError: currencyQuery?.isError || chartQuery?.isError || false,
|
66
|
+
};
|
67
|
+
});
|
68
|
+
|
69
|
+
return { currencies };
|
70
|
+
};
|