From fd96b06f1ccb1dce88292b2f515f45c05f6c207b Mon Sep 17 00:00:00 2001 From: Raicuparta Date: Sat, 21 Jan 2023 02:50:14 +0100 Subject: [PATCH] fix tags filter for addons --- app/store/mods-state/mod-filter-state.ts | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/app/store/mods-state/mod-filter-state.ts b/app/store/mods-state/mod-filter-state.ts index 9666e81..4bc6919 100644 --- a/app/store/mods-state/mod-filter-state.ts +++ b/app/store/mods-state/mod-filter-state.ts @@ -3,14 +3,26 @@ import { modTagsSelectionState } from './mod-tags-state'; import { modList } from './mods-state'; -const filterByTags = (mod: Mod, tags: Set) => { +const filterByTags = (tags: Set, mod: Mod, mods: Mod[]) => { if (tags.size === 0) return true; for (let i = 0; i < mod.tags.length; i += 1) { if (tags.has(mod.tags[i])) { return true; } + if ( + mod.addons.find((addonUniqueName) => { + const addon = mods.find( + (modFromList) => modFromList.uniqueName === addonUniqueName + ); + + return addon && tags.has(addon.tags[i]); + }) + ) { + return true; + } } + return false; }; @@ -63,7 +75,8 @@ export const filteredModList = selector({ return mods .filter((mod) => { return ( - filterByText(filter, mod, mods) && filterByTags(mod, tagsSelection) + filterByText(filter, mod, mods) && + filterByTags(tagsSelection, mod, mods) ); }) .sort(