diff --git a/src/screens/Search/utils.ts b/src/screens/Search/utils.ts index dcf92c0926..012ae4e9f3 100644 --- a/src/screens/Search/utils.ts +++ b/src/screens/Search/utils.ts @@ -35,6 +35,7 @@ export function makeSearchQuery(query: string, params: Params) { return [ query, Object.entries(params) + .filter(([_, value]) => value) .map(([name, value]) => `${name}:${value}`) .join(' '), ] diff --git a/src/view/screens/Search/Search.tsx b/src/view/screens/Search/Search.tsx index 4a6c87f104..6fce998141 100644 --- a/src/view/screens/Search/Search.tsx +++ b/src/view/screens/Search/Search.tsx @@ -338,18 +338,28 @@ function SearchLanguageDropdown({ onChange(value: string): void }) { const t = useThemeNew() + const {_} = useLingui() const {contentLanguages} = useLanguagePrefs() const items = React.useMemo(() => { - return LANGUAGES.filter(l => Boolean(l.code2)) - .map(l => ({ - label: l.name, - inputLabel: l.name, - value: l.code2, - key: l.code2 + l.code3, - })) - .sort(a => (contentLanguages.includes(a.value) ? -1 : 1)) - }, [contentLanguages]) + return [ + { + label: _(msg`Any language`), + inputLabel: _(msg`Any language`), + value: '', + key: '*', + }, + ].concat( + LANGUAGES.filter(l => Boolean(l.code2)) + .map(l => ({ + label: l.name, + inputLabel: l.name, + value: l.code2, + key: l.code2 + l.code3, + })) + .sort(a => (contentLanguages.includes(a.value) ? -1 : 1)), + ) + }, [_, contentLanguages]) const style = { backgroundColor: t.atoms.bg_contrast_25.backgroundColor,