mirror of
https://github.com/Sonarr/Sonarr
synced 2026-04-17 02:31:29 +02:00
Fix v5 language select and filtering
This commit is contained in:
parent
494f446b05
commit
cd1aeefc4f
4 changed files with 23 additions and 13 deletions
|
|
@ -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(() => {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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]);
|
||||
|
|
|
|||
|
|
@ -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={
|
||||
|
|
|
|||
Loading…
Reference in a new issue