Lidarr/frontend/src/Components/Filter/Builder/FilterBuilderModalContentCo...

52 lines
1.6 KiB
JavaScript
Raw Normal View History

2018-03-15 01:28:46 +00:00
import { connect } from 'react-redux';
import { createSelector } from 'reselect';
2020-09-07 01:33:10 +00:00
import { deleteCustomFilter, saveCustomFilter } from 'Store/Actions/customFilterActions';
2022-07-19 20:08:53 +00:00
import { fetchDownloadClients, fetchIndexers } from 'Store/Actions/settingsActions';
2018-03-15 01:28:46 +00:00
import FilterBuilderModalContent from './FilterBuilderModalContent';
function createMapStateToProps() {
return createSelector(
(state, { customFilters }) => customFilters,
(state, { id }) => id,
(state) => state.customFilters.isSaving,
(state) => state.customFilters.saveError,
2022-07-19 20:08:53 +00:00
(state) => state.settings.downloadClients.isPopulated,
(state) => state.settings.indexers.isPopulated,
(customFilters, id, isSaving, saveError, downloadClientsPopulated, indexersPopulated) => {
const isPopulated = downloadClientsPopulated && indexersPopulated;
if (id) {
const customFilter = customFilters.find((c) => c.id === id);
2018-03-15 01:28:46 +00:00
return {
id: customFilter.id,
2018-03-15 01:28:46 +00:00
label: customFilter.label,
filters: customFilter.filters,
customFilters,
isSaving,
2022-07-19 20:08:53 +00:00
saveError,
isPopulated
2018-03-15 01:28:46 +00:00
};
}
return {
label: '',
filters: [],
customFilters,
isSaving,
2022-07-19 20:08:53 +00:00
saveError,
isPopulated
2018-03-15 01:28:46 +00:00
};
}
);
}
const mapDispatchToProps = {
onSaveCustomFilterPress: saveCustomFilter,
2022-07-19 20:08:53 +00:00
dispatchDeleteCustomFilter: deleteCustomFilter,
dispatchFetchDownloadClients: fetchDownloadClients,
dispatchFetchIndexers: fetchIndexers
};
export default connect(createMapStateToProps, mapDispatchToProps)(FilterBuilderModalContent);