mirror of https://github.com/Radarr/Radarr
48 lines
1.1 KiB
JavaScript
48 lines
1.1 KiB
JavaScript
import { createSelector, createSelectorCreator, defaultMemoize } from 'reselect';
|
|
import hasDifferentItemsOrOrder from 'Utilities/Object/hasDifferentItemsOrOrder';
|
|
import createClientSideCollectionSelector from './createClientSideCollectionSelector';
|
|
|
|
function createUnoptimizedSelector(uiSection) {
|
|
return createSelector(
|
|
createClientSideCollectionSelector('movies', uiSection),
|
|
(movies) => {
|
|
const items = movies.items.map((s) => {
|
|
const {
|
|
id,
|
|
sortTitle,
|
|
collectionId
|
|
} = s;
|
|
|
|
return {
|
|
id,
|
|
sortTitle,
|
|
collectionId
|
|
};
|
|
});
|
|
|
|
return {
|
|
...movies,
|
|
items
|
|
};
|
|
}
|
|
);
|
|
}
|
|
|
|
function movieListEqual(a, b) {
|
|
return hasDifferentItemsOrOrder(a, b);
|
|
}
|
|
|
|
const createMovieEqualSelector = createSelectorCreator(
|
|
defaultMemoize,
|
|
movieListEqual
|
|
);
|
|
|
|
function createMovieClientSideCollectionItemsSelector(uiSection) {
|
|
return createMovieEqualSelector(
|
|
createUnoptimizedSelector(uiSection),
|
|
(movies) => movies
|
|
);
|
|
}
|
|
|
|
export default createMovieClientSideCollectionItemsSelector;
|