UNPKG

@ledgerhq/live-common

Version:
43 lines 2.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.sortNetworks = void 0; exports.useNetworkConfiguration = useNetworkConfiguration; const useLeftAccounts_1 = require("../hooks/useLeftAccounts"); const useLeftAccountsApy_1 = require("../hooks/useLeftAccountsApy"); const useRightBalanceNetwork_1 = require("../hooks/useRightBalanceNetwork"); const sortByBalance_1 = require("../utils/sortByBalance"); const sortNetworks = (result, leftElement, rightElement) => { let sorted = result; if (leftElement === "numberOfAccounts" || leftElement === "numberOfAccountsAndApy" || leftElement === undefined) { sorted = [...sorted].sort((a, b) => (b?.count || 0) - (a?.count || 0)); } if (rightElement === "balance" || rightElement === undefined) { sorted = [...sorted].sort((a, b) => (0, sortByBalance_1.compareByBalanceThenFiat)(a?.balanceData, b?.balanceData)); } return sorted; }; exports.sortNetworks = sortNetworks; function useNetworkConfiguration(networks, options) { const { leftElement = "numberOfAccounts", rightElement = "balance" } = options; const params = { networks }; const emptyParams = { networks: [] }; const rightResults = { balance: (0, useRightBalanceNetwork_1.useRightBalanceNetwork)(rightElement === "balance" || rightElement === undefined ? params : emptyParams, options), }; const leftResults = { numberOfAccounts: (0, useLeftAccounts_1.useLeftAccountsModule)(leftElement === "numberOfAccounts" || leftElement === undefined ? params : emptyParams, options), numberOfAccountsAndApy: (0, useLeftAccountsApy_1.useLeftAccountsApyModule)(leftElement === "numberOfAccountsAndApy" ? params : emptyParams, options), }; const merged = networks.map((network, i) => { const asset = network.type === "TokenCurrency" ? network.parentCurrency : network; return { ...asset, ...rightResults[rightElement]?.[i], ...leftResults[leftElement]?.[i], }; }); return (0, exports.sortNetworks)(merged, leftElement, rightElement); } //# sourceMappingURL=createNetworkConfiguration.js.map