1
0
mirror of https://github.com/Sonarr/Sonarr.git synced 2026-04-16 21:15:28 -04:00

Fix v5 language select and filtering

This commit is contained in:
Mark McDowall
2026-03-08 17:36:46 -07:00
parent 494f446b05
commit cd1aeefc4f
4 changed files with 23 additions and 13 deletions

View File

@@ -18,6 +18,9 @@ export interface LanguageSelectInputProps {
includeNoChange?: boolean;
includeNoChangeDisabled?: boolean;
includeMixed?: boolean;
includeAny?: boolean;
includeOriginal?: boolean;
includeUnknown?: boolean;
isDisabled?: boolean;
onChange: (payload: LanguageSelectInputOnChangeProps) => void;
}
@@ -27,13 +30,16 @@ export default function LanguageSelectInput({
includeNoChange = false,
includeNoChangeDisabled,
includeMixed = false,
includeAny = true,
includeOriginal = false,
includeUnknown = false,
onChange,
...otherProps
}: LanguageSelectInputProps) {
const { data: items = [] } = useFilteredLanguages({
includeAny: true,
includeOriginal: true,
includeUnknown: true,
Any: !includeAny,
Original: !includeOriginal,
Unknown: !includeUnknown,
});
const values = useMemo(() => {

View File

@@ -32,8 +32,8 @@ function SelectLanguageModalContent(props: SelectLanguageModalContentProps) {
isFetched: isPopulated,
error,
} = useFilteredLanguages({
includeAny: true,
includeOriginal: true,
Any: true,
Original: true,
});
const [languageIds, setLanguageIds] = useState(props.languageIds);

View File

@@ -4,9 +4,9 @@ import Language from 'Language/Language';
interface LanguageFilter {
[key: string]: boolean | undefined;
includeAny: boolean;
includeOriginal?: boolean;
includeUnknown?: boolean;
Any: boolean;
Original?: boolean;
Unknown?: boolean;
}
const PATH = '/language';
@@ -22,12 +22,14 @@ export const useLanguages = () => {
};
export const useFilteredLanguages = (
excludeLanguages: LanguageFilter = { includeAny: true }
excludeLanguages: LanguageFilter = { Any: true }
) => {
const { data, isFetching, isFetched, error } = useLanguages();
const filteredItems = useMemo(() => {
if (!data) return [];
if (!data) {
return [];
}
return data.filter((lang) => !excludeLanguages[lang.name]);
}, [data, excludeLanguages]);

View File

@@ -67,9 +67,9 @@ function UISettings() {
isFetched: isLanguagesPopulated,
error: languagesError,
} = useFilteredLanguages({
includeAny: true,
includeOriginal: true,
includeUnknown: true,
Any: true,
Original: true,
Unknown: true,
});
const {
@@ -258,6 +258,8 @@ function UISettings() {
name="uiLanguage"
helpText={translate('UiLanguageHelpText')}
helpTextWarning={translate('BrowserReloadRequired')}
includeOriginal={false}
includeUnknown={false}
onChange={handleInputChange}
{...settings.uiLanguage}
errors={