mirror of https://github.com/lidarr/Lidarr
46 lines
1.0 KiB
JavaScript
46 lines
1.0 KiB
JavaScript
import { createSelector, createSelectorCreator, defaultMemoize } from 'reselect';
|
|
import hasDifferentItemsOrOrder from 'Utilities/Object/hasDifferentItemsOrOrder';
|
|
import createClientSideCollectionSelector from './createClientSideCollectionSelector';
|
|
|
|
function createUnoptimizedSelector(uiSection) {
|
|
return createSelector(
|
|
createClientSideCollectionSelector('artist', uiSection),
|
|
(artist) => {
|
|
const items = artist.items.map((s) => {
|
|
const {
|
|
id,
|
|
sortName
|
|
} = s;
|
|
|
|
return {
|
|
id,
|
|
sortName
|
|
};
|
|
});
|
|
|
|
return {
|
|
...artist,
|
|
items
|
|
};
|
|
}
|
|
);
|
|
}
|
|
|
|
function artistListEqual(a, b) {
|
|
return hasDifferentItemsOrOrder(a, b);
|
|
}
|
|
|
|
const createArtistEqualSelector = createSelectorCreator(
|
|
defaultMemoize,
|
|
artistListEqual
|
|
);
|
|
|
|
function createArtistClientSideCollectionItemsSelector(uiSection) {
|
|
return createArtistEqualSelector(
|
|
createUnoptimizedSelector(uiSection),
|
|
(artist) => artist
|
|
);
|
|
}
|
|
|
|
export default createArtistClientSideCollectionItemsSelector;
|