diff --git a/src/features/browse/sources/Sources.tsx b/src/features/browse/sources/Sources.tsx
index 63c14fb5..c466ef05 100644
--- a/src/features/browse/sources/Sources.tsx
+++ b/src/features/browse/sources/Sources.tsx
@@ -56,6 +56,14 @@ export function Sources({ tabsMenuHeight }: { tabsMenuHeight: number }) {
}),
[sources, shownLangs],
);
+ const sourcesForLanguageFilter = useMemo(
+ () =>
+ SourceService.filter(sources ?? [], {
+ showNsfw,
+ keepLocalSource: false,
+ }),
+ [sources],
+ );
const sourcesByLanguage = useMemo(() => {
const lastUsedSource = SourceService.getLastUsedSource(lastUsedSourceId, filteredSources);
const groupedByLanguageTuple = Object.entries(
@@ -72,7 +80,10 @@ export function Sources({ tabsMenuHeight }: { tabsMenuHeight: number }) {
return groupedByLanguageTuple;
}, [filteredSources]);
- const sourceLanguages = useMemo(() => SourceService.getLanguages(sources ?? []), [sources]);
+ const sourceLanguages = useMemo(
+ () => SourceService.getLanguages(sourcesForLanguageFilter, { excludeLocalSource: true }),
+ [sources],
+ );
const areSourcesFromDifferentRepos = useMemo(
() => SourceService.areFromMultipleRepos(filteredSources),
[filteredSources],
@@ -108,10 +119,10 @@ export function Sources({ tabsMenuHeight }: { tabsMenuHeight: number }) {
selectedLanguages={shownLangs}
setSelectedLanguages={setShownLangs}
languages={sourceLanguages}
- sources={sources ?? []}
+ sources={sourcesForLanguageFilter}
/>
>,
- [t, shownLangs, sourceLanguages, sources],
+ [t, shownLangs, sourceLanguages, sourcesForLanguageFilter],
);
if (isLoading) return ;
diff --git a/src/features/source/components/SourceLanguageSelect.tsx b/src/features/source/components/SourceLanguageSelect.tsx
index 48578190..1e767a02 100644
--- a/src/features/source/components/SourceLanguageSelect.tsx
+++ b/src/features/source/components/SourceLanguageSelect.tsx
@@ -21,6 +21,7 @@ import { GroupedVirtuoso } from 'react-virtuoso';
import ListItemAvatar from '@mui/material/ListItemAvatar';
import { useLingui } from '@lingui/react/macro';
import Checkbox from '@mui/material/Checkbox';
+import Box from '@mui/material/Box';
import { CustomTooltip } from '@/base/components/CustomTooltip.tsx';
import { translateExtensionLanguage } from '@/features/extension/Extensions.utils.ts';
import { languageSortComparator, toUniqueLanguageCodes } from '@/base/utils/Languages.ts';
@@ -139,6 +140,7 @@ export const SourceLanguageSelect = ({