diff --git a/src/hooks/useMapData.js b/src/hooks/useMapData.js index 16b331fca..4ecd038dc 100644 --- a/src/hooks/useMapData.js +++ b/src/hooks/useMapData.js @@ -115,6 +115,15 @@ export function useMapData(once = false) { } }, ) + const defaultEnabled = prev.filters?.pokemon?.filter?.global?.enabled + if ( + defaultEnabled !== undefined && + defaultEnabled !== filters.pokemon.filter.global.enabled + ) + Object.entries(newFilters.pokemon.filter).forEach(([key, filter]) => { + if (prev.filters.pokemon.filter[key] === undefined) + filter.enabled = defaultEnabled + }) return { filters: newFilters, } diff --git a/src/utils/applyToAll.js b/src/utils/applyToAll.js index 991c1f209..c6d5e99c9 100644 --- a/src/utils/applyToAll.js +++ b/src/utils/applyToAll.js @@ -30,14 +30,16 @@ export function applyToAll( const userFilters = localFilters.filter ?? {} const serverFilters = useMemory.getState().filters[category] - const staticFilters = serverFilters?.filter ?? {} + const staticFilters = Object.entries(serverFilters?.filter ?? {}) const refFilter = serverFilters?.standard ?? STANDARD_BACKUP const idSet = new Set(selectedIds ?? []) + if (category === 'pokemon' && selectedIds.length >= staticFilters.length - 1) + idSet.add('global') const newObj = Object.fromEntries( - Object.keys(staticFilters).flatMap((key) => { - const filter = userFilters[key] ?? staticFilters[key] ?? refFilter + staticFilters.flatMap(([key, staticFilter]) => { + const filter = userFilters[key] ?? staticFilter ?? refFilter const filters = [ [ key,