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
5 years ago
|
import { createSelector, createSelectorCreator, defaultMemoize } from 'reselect';
|
||
|
import hasDifferentItemsOrOrder from 'Utilities/Object/hasDifferentItemsOrOrder';
|
||
4 years ago
|
import createClientSideCollectionSelector from './createClientSideCollectionSelector';
|
||
6 years ago
|
|
||
|
function createUnoptimizedSelector(uiSection) {
|
||
|
return createSelector(
|
||
4 years ago
|
createClientSideCollectionSelector('indexers', uiSection),
|
||
|
(indexers) => {
|
||
|
const items = indexers.items.map((s) => {
|
||
6 years ago
|
const {
|
||
|
id,
|
||
4 years ago
|
name
|
||
6 years ago
|
} = s;
|
||
|
|
||
|
return {
|
||
|
id,
|
||
4 years ago
|
sortTitle: name
|
||
6 years ago
|
};
|
||
|
});
|
||
|
|
||
|
return {
|
||
4 years ago
|
...indexers,
|
||
6 years ago
|
items
|
||
|
};
|
||
|
}
|
||
|
);
|
||
|
}
|
||
|
|
||
5 years ago
|
function movieListEqual(a, b) {
|
||
|
return hasDifferentItemsOrOrder(a, b);
|
||
|
}
|
||
|
|
||
|
const createMovieEqualSelector = createSelectorCreator(
|
||
|
defaultMemoize,
|
||
|
movieListEqual
|
||
|
);
|
||
|
|
||
4 years ago
|
function createIndexerClientSideCollectionItemsSelector(uiSection) {
|
||
5 years ago
|
return createMovieEqualSelector(
|
||
6 years ago
|
createUnoptimizedSelector(uiSection),
|
||
|
(movies) => movies
|
||
|
);
|
||
|
}
|
||
|
|
||
4 years ago
|
export default createIndexerClientSideCollectionItemsSelector;
|