@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
43 lines • 2.19 kB
JavaScript
;
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