You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.1 KiB
46 lines
1.1 KiB
import { createSelector, createSelectorCreator, defaultMemoize } from 'reselect';
|
|
import hasDifferentItemsOrOrder from 'Utilities/Object/hasDifferentItemsOrOrder';
|
|
import createClientSideCollectionSelector from './createClientSideCollectionSelector';
|
|
|
|
function createUnoptimizedSelector(uiSection) {
|
|
return createSelector(
|
|
createClientSideCollectionSelector('movieCollections', uiSection),
|
|
(movies) => {
|
|
const items = movies.items.map((s) => {
|
|
const {
|
|
id,
|
|
sortTitle
|
|
} = s;
|
|
|
|
return {
|
|
id,
|
|
sortTitle
|
|
};
|
|
});
|
|
|
|
return {
|
|
...movies,
|
|
items
|
|
};
|
|
}
|
|
);
|
|
}
|
|
|
|
function movieListEqual(a, b) {
|
|
return hasDifferentItemsOrOrder(a, b);
|
|
}
|
|
|
|
const createMovieEqualSelector = createSelectorCreator(
|
|
defaultMemoize,
|
|
movieListEqual
|
|
);
|
|
|
|
function createCollectionClientSideCollectionItemsSelector(uiSection) {
|
|
return createMovieEqualSelector(
|
|
createUnoptimizedSelector(uiSection),
|
|
(movies) => movies
|
|
);
|
|
}
|
|
|
|
export default createCollectionClientSideCollectionItemsSelector;
|