From 5c762c013900e79d507bcb7c1a9474d246283f58 Mon Sep 17 00:00:00 2001 From: danielriosr <68661990+danielriosr@users.noreply.github.com> Date: Wed, 6 May 2026 14:18:48 -0400 Subject: [PATCH] feat(library): filter for enabled only --- src/modules/library/api/useFilteredMods.ts | 9 +++++++-- src/modules/library/components/FilterPopover.tsx | 13 +++++++++++++ src/stores/libraryFilter.ts | 11 ++++++++++- 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/src/modules/library/api/useFilteredMods.ts b/src/modules/library/api/useFilteredMods.ts index 2f28d10..d5fca8b 100644 --- a/src/modules/library/api/useFilteredMods.ts +++ b/src/modules/library/api/useFilteredMods.ts @@ -5,7 +5,8 @@ import { sortMods } from "@/modules/library/utils"; import { useLibraryFilterStore } from "@/stores"; export function useFilteredMods(mods: InstalledMod[], searchQuery: string): InstalledMod[] { - const { selectedTags, selectedChampions, selectedMaps, sort } = useLibraryFilterStore(); + const { selectedTags, selectedChampions, selectedMaps, showOnlyEnabled, sort } = + useLibraryFilterStore(); return useMemo(() => { let result = mods; @@ -17,6 +18,10 @@ export function useFilteredMods(mods: InstalledMod[], searchQuery: string): Inst ); } + if (showOnlyEnabled) { + result = result.filter((mod) => mod.enabled); + } + if (selectedTags.size > 0) { result = result.filter((mod) => mod.tags.some((t) => selectedTags.has(t))); } @@ -28,5 +33,5 @@ export function useFilteredMods(mods: InstalledMod[], searchQuery: string): Inst } return sortMods(result, sort); - }, [mods, searchQuery, selectedTags, selectedChampions, selectedMaps, sort]); + }, [mods, searchQuery, selectedTags, selectedChampions, selectedMaps, showOnlyEnabled, sort]); } diff --git a/src/modules/library/components/FilterPopover.tsx b/src/modules/library/components/FilterPopover.tsx index 7554af8..9643926 100644 --- a/src/modules/library/components/FilterPopover.tsx +++ b/src/modules/library/components/FilterPopover.tsx @@ -36,6 +36,8 @@ export function FilterPopover({ filterOptions }: FilterPopoverProps) { toggleChampion, toggleMap, clearFilters, + showOnlyEnabled, + setShowOnlyEnabled, } = useLibraryFilterStore(); const hasActive = useHasActiveFilters(); const [champSearch, setChampSearch] = useState(""); @@ -94,6 +96,17 @@ export function FilterPopover({ filterOptions }: FilterPopoverProps) {