mirror of
https://github.com/Sonarr/Sonarr.git
synced 2026-04-27 23:06:29 -04:00
Convert UI Settings to TypeScript
This commit is contained in:
@@ -1,28 +0,0 @@
|
||||
import { createSelector } from 'reselect';
|
||||
import { LanguageSettingsAppState } from 'App/State/SettingsAppState';
|
||||
import Language from 'Language/Language';
|
||||
import createLanguagesSelector from './createLanguagesSelector';
|
||||
|
||||
export default function createFilteredLanguagesSelector(filterUnknown = false) {
|
||||
const filterItems = ['Any', 'Original'];
|
||||
|
||||
if (filterUnknown) {
|
||||
filterItems.push('Unknown');
|
||||
}
|
||||
|
||||
return createSelector(createLanguagesSelector(), (languages) => {
|
||||
const { isFetching, isPopulated, error, items } =
|
||||
languages as LanguageSettingsAppState;
|
||||
|
||||
const filteredLanguages = items.filter(
|
||||
(lang: Language) => !filterItems.includes(lang.name)
|
||||
);
|
||||
|
||||
return {
|
||||
isFetching,
|
||||
isPopulated,
|
||||
error,
|
||||
items: filteredLanguages,
|
||||
};
|
||||
});
|
||||
}
|
||||
@@ -1,15 +1,23 @@
|
||||
import { createSelector } from 'reselect';
|
||||
import AppState from 'App/State/AppState';
|
||||
|
||||
function createLanguagesSelector() {
|
||||
interface LanguageFilter {
|
||||
[key: string]: boolean | undefined;
|
||||
Any: boolean;
|
||||
Original?: boolean;
|
||||
Unknown?: boolean;
|
||||
}
|
||||
|
||||
function createLanguagesSelector(
|
||||
excludeLanguages: LanguageFilter = { Any: true }
|
||||
) {
|
||||
return createSelector(
|
||||
(state: AppState) => state.settings.languages,
|
||||
(languages) => {
|
||||
const { isFetching, isPopulated, error, items } = languages;
|
||||
|
||||
const filterItems = ['Any'];
|
||||
const filteredLanguages = items.filter(
|
||||
(lang) => !filterItems.includes(lang.name)
|
||||
(lang) => !excludeLanguages[lang.name]
|
||||
);
|
||||
|
||||
return {
|
||||
|
||||
@@ -28,6 +28,9 @@ function createSettingsSectionSelector<
|
||||
const saveError =
|
||||
'saveError' in sectionSettings ? sectionSettings.saveError : undefined;
|
||||
|
||||
const isSaving =
|
||||
'isSaving' in sectionSettings ? sectionSettings.isSaving : false;
|
||||
|
||||
const {
|
||||
settings,
|
||||
pendingChanges: selectedPendingChanges,
|
||||
@@ -36,6 +39,7 @@ function createSettingsSectionSelector<
|
||||
|
||||
return {
|
||||
...other,
|
||||
isSaving,
|
||||
saveError,
|
||||
settings: settings as PendingSection<T>,
|
||||
pendingChanges: selectedPendingChanges as Partial<T>,
|
||||
|
||||
Reference in New Issue
Block a user