@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
29 lines • 1.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createCurrencyDataSelector = void 0;
const toolkit_1 = require("@reduxjs/toolkit");
/**
* Generic selector factory for finding data by currency ID in paginated API responses
* @param dataKey - The key to look for in each page (e.g., 'markets', 'interestRates')
* @returns A selector function that finds data by currency ID
*/
function createCurrencyDataSelector(dataKey) {
return (0, toolkit_1.createSelector)([
(state) => state.assetsDataApi?.queries ?? {},
(_state, currencyId) => currencyId,
], (queries, currencyId) => {
for (const query of Object.values(queries)) {
const pages = query.data?.pages;
if (!pages)
continue;
for (const page of pages) {
const data = page[dataKey]?.[currencyId];
if (data)
return data;
}
}
return undefined;
});
}
exports.createCurrencyDataSelector = createCurrencyDataSelector;
//# sourceMappingURL=selectorUtils.js.map