UNPKG

@ledgerhq/live-common

Version:
65 lines 3.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createNetworkConfigurationHook = exports.getRightElement = exports.getLeftElement = void 0; const useLeftAccounts_1 = require("../hooks/useLeftAccounts"); const useLeftAccountsApy_1 = require("../hooks/useLeftAccountsApy"); const useRightBalanceNetwork_1 = require("../hooks/useRightBalanceNetwork"); const composeHooks_1 = require("../../utils/composeHooks"); const sortByBalance_1 = require("../utils/sortByBalance"); const getLeftElement = (NetworkConfigurationDeps) => (leftElement) => { switch (leftElement) { case "undefined": return undefined; case "numberOfAccountsAndApy": return (params) => (0, useLeftAccountsApy_1.useLeftAccountsApyModule)(params, NetworkConfigurationDeps.useAccountData, NetworkConfigurationDeps.accountsCountAndApy, params.networks); case "numberOfAccounts": default: return (0, useLeftAccounts_1.createUseLeftAccountsModule)({ useAccountData: NetworkConfigurationDeps.useAccountData, accountsCount: NetworkConfigurationDeps.accountsCount, }); } }; exports.getLeftElement = getLeftElement; const getRightElement = (NetworkConfigurationDeps) => (rightElement) => { switch (rightElement) { case "undefined": return undefined; case "balance": default: return (0, useRightBalanceNetwork_1.createUseRightBalanceNetwork)({ useBalanceDeps: NetworkConfigurationDeps.useBalanceDeps, balanceItem: NetworkConfigurationDeps.balanceItem, }); } }; exports.getRightElement = getRightElement; const createNetworkConfigurationHook = (NetworkConfigurationDeps) => ({ networksConfig, accounts$ }) => { const { leftElement, rightElement } = networksConfig ?? {}; const leftHook = (0, exports.getLeftElement)(NetworkConfigurationDeps)(leftElement); const rightHook = (0, exports.getRightElement)(NetworkConfigurationDeps)(rightElement); // eslint-disable-next-line @typescript-eslint/consistent-type-assertions const hooks = [rightHook, leftHook].filter(Boolean); return (assets, networks) => { const composedHook = (0, composeHooks_1.composeHooks)(...hooks.map(hook => () => hook({ assets, accounts$, networks, }))); const result = composedHook(assets); if (leftElement === "numberOfAccounts" || leftElement === "numberOfAccountsAndApy" || leftElement === undefined // default ) { result.sort((a, b) => (b?.count || 0) - (a?.count || 0)); } if (rightElement === "balance" || rightElement === undefined // default ) { result.sort((a, b) => (0, sortByBalance_1.compareByBalanceThenFiat)(a?.balanceData, b?.balanceData)); } return result; }; }; exports.createNetworkConfigurationHook = createNetworkConfigurationHook; //# sourceMappingURL=createNetworkConfiguration.js.map