Skip to content

Commit 5c23140

Browse files
committed
fix: apply to all should flip global
1 parent 2049a90 commit 5c23140

File tree

2 files changed

+38
-3
lines changed

2 files changed

+38
-3
lines changed

src/components/Menu.jsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ export function Menu({
8585
{ enabled: false },
8686
category,
8787
useMemory.getState().advMenuFiltered[category],
88+
false,
8889
),
8990
icon: 'Clear',
9091
color: 'error',

src/utils/applyToAll.js

Lines changed: 37 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ export function applyToAll(
2525
selectedIds = [],
2626
includeSlots = false,
2727
) {
28-
const localFilters = useStorage.getState().filters[category]
28+
const storageState = useStorage.getState()
29+
const localFilters = storageState.filters?.[category] ?? {}
2930
const easyMode = !!localFilters.easyMode
3031
const userFilters = localFilters.filter ?? {}
3132

@@ -34,8 +35,17 @@ export function applyToAll(
3435
const refFilter = serverFilters?.standard ?? STANDARD_BACKUP
3536

3637
const idSet = new Set(selectedIds ?? [])
37-
if (category === 'pokemon' && selectedIds.length >= staticFilters.length - 1)
38-
idSet.add('global')
38+
39+
const menuSelections = storageState.menus?.[category]?.filters ?? {}
40+
const hasMenuFiltersApplied = Object.values(menuSelections).some((options) =>
41+
Object.values(options || {}).some(Boolean),
42+
)
43+
const advancedSearch =
44+
/** @type {string | undefined} */ (
45+
storageState.searches?.[`${category}Advanced`]
46+
) ?? ''
47+
const hasSearchApplied =
48+
typeof advancedSearch === 'string' && advancedSearch.trim().length > 0
3949

4050
const newObj = Object.fromEntries(
4151
staticFilters.flatMap(([key, staticFilter]) => {
@@ -56,5 +66,29 @@ export function applyToAll(
5666
return filters
5767
}),
5868
)
69+
if (
70+
category === 'pokemon' &&
71+
typeof newFilter.enabled === 'boolean' &&
72+
newObj.global &&
73+
!hasMenuFiltersApplied &&
74+
!hasSearchApplied
75+
) {
76+
newObj.global = {
77+
...newObj.global,
78+
enabled: newFilter.enabled,
79+
all: newFilter.enabled ? !!easyMode : false,
80+
}
81+
} else if (
82+
category !== 'pokemon' &&
83+
typeof newFilter.enabled === 'boolean' &&
84+
newObj.global &&
85+
!hasMenuFiltersApplied &&
86+
!hasSearchApplied
87+
) {
88+
newObj.global = {
89+
...newObj.global,
90+
enabled: newFilter.enabled,
91+
}
92+
}
5993
setDeepStore(`filters.${category}.filter`, newObj)
6094
}

0 commit comments

Comments
 (0)