Lidarr/frontend/src/Store/Selectors/createMultiArtistsSelector.ts

24 lines
598 B
TypeScript

import { createSelector } from 'reselect';
import AppState from 'App/State/AppState';
import Artist from 'Artist/Artist';
function createMultiArtistsSelector(artistIds: number[]) {
return createSelector(
(state: AppState) => state.artist.itemMap,
(state: AppState) => state.artist.items,
(itemMap, allArtists) => {
return artistIds.reduce((acc: Artist[], artistId) => {
const artist = allArtists[itemMap[artistId]];
if (artist) {
acc.push(artist);
}
return acc;
}, []);
}
);
}
export default createMultiArtistsSelector;