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={