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.
23 lines
819 B
23 lines
819 B
import { createSelector } from 'reselect';
|
|
import { DownloadClientAppState } from 'App/State/SettingsAppState';
|
|
import DownloadProtocol from 'DownloadClient/DownloadProtocol';
|
|
import createSortedSectionSelector from 'Store/Selectors/createSortedSectionSelector';
|
|
import sortByName from 'Utilities/Array/sortByName';
|
|
|
|
export default function createEnabledDownloadClientsSelector(
|
|
protocol: DownloadProtocol
|
|
) {
|
|
return createSelector(
|
|
createSortedSectionSelector('settings.downloadClients', sortByName),
|
|
(downloadClients: DownloadClientAppState) => {
|
|
const { isFetching, isPopulated, error, items } = downloadClients;
|
|
|
|
const clients = items.filter(
|
|
(item) => item.protocol === protocol && item.enable
|
|
);
|
|
|
|
return { isFetching, isPopulated, error, items: clients };
|
|
}
|
|
);
|
|
}
|