Make extension filtering options optional

This commit is contained in:
schroda
2025-04-24 13:44:59 +02:00
parent 394d541746
commit e1905b267b

View File

@@ -102,17 +102,25 @@ export const getLanguagesFromExtensions = (extensions: TExtension[]): string[] =
export const filterExtensions = (
extensions: TExtension[],
selectedLanguages: string[],
showNsfw: boolean,
query: string | null | undefined,
{
selectedLanguages,
showNsfw,
query,
}: {
selectedLanguages?: string[];
showNsfw?: boolean;
query?: string | null | undefined;
} = {},
): TExtension[] => {
const normalizedSelectedLanguages = toComparableLanguages(toUniqueLanguageCodes(selectedLanguages));
const normalizedSelectedLanguages = toComparableLanguages(toUniqueLanguageCodes(selectedLanguages ?? []));
return extensions
.filter(
(extension) =>
normalizedSelectedLanguages.includes(toComparableLanguage(extension.lang)) || extension.isInstalled,
!selectedLanguages ||
normalizedSelectedLanguages.includes(toComparableLanguage(extension.lang)) ||
extension.isInstalled,
)
.filter((extension) => showNsfw || !extension.isNsfw)
.filter((extension) => !query || enhancedCleanup(extension.name).includes(enhancedCleanup(query)));
.filter((extension) => showNsfw === undefined || showNsfw || !extension.isNsfw)
.filter((extension) => query == null || enhancedCleanup(extension.name).includes(enhancedCleanup(query)));
};