1
0
mirror of https://github.com/Radarr/Radarr.git synced 2026-04-15 21:05:48 -04:00
Files
Radarr/frontend/src/Store/Selectors/createMovieClientSideCollectionItemsSelector.js
2022-05-28 17:46:44 -05:00

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;