@@ -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