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.
34 lines
850 B
34 lines
850 B
import _ from 'lodash';
|
|
import { createSelector } from 'reselect';
|
|
|
|
function createMovieCreditListSelector() {
|
|
return createSelector(
|
|
(state, { tmdbId }) => tmdbId,
|
|
(state) => state.settings.importLists.items,
|
|
(tmdbId, importLists) => {
|
|
const importListIds = _.reduce(importLists, (acc, list) => {
|
|
if (list.implementation === 'TMDbPersonImport') {
|
|
const personIdField = list.fields.find((field) => {
|
|
return field.name === 'personId';
|
|
});
|
|
|
|
if (personIdField && parseInt(personIdField.value) === tmdbId) {
|
|
acc.push(list);
|
|
return acc;
|
|
}
|
|
}
|
|
|
|
return acc;
|
|
}, []);
|
|
|
|
if (importListIds.length === 0) {
|
|
return undefined;
|
|
}
|
|
|
|
return importListIds[0];
|
|
}
|
|
);
|
|
}
|
|
|
|
export default createMovieCreditListSelector;
|