Skip to content

Commit

Permalink
fix [dev-8409] dashboard filters - changeFilterActive (#1410)
Browse files Browse the repository at this point in the history
  • Loading branch information
joshlacey authored Jul 17, 2024
1 parent d448351 commit 9405871
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ const DashboardFiltersWrapper: React.FC<DashboardFiltersProps> = ({ apiFilterDro

const handleOnChange = (index: number, value: string | string[]) => {
const newConfig = _.cloneDeep(dashboardConfig)
let newSharedFilters = changeFilterActive(index, value, newConfig)
let newSharedFilters = changeFilterActive(index, value, newConfig.dashboard.sharedFilters, visualizationConfig)

if (dashboardConfig.filterBehavior === FilterBehavior.Apply) {
const isAutoSelectFilter = visualizationConfig.autoLoad
Expand Down
27 changes: 11 additions & 16 deletions packages/dashboard/src/helpers/changeFilterActive.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
import _ from 'lodash'
import { DashboardConfig } from '../types/DashboardConfig'
import { getAutoLoadVisualization } from './getAutoLoadVisualization'
import { FilterBehavior } from '../components/Header/Header'
import { getQueryParams, updateQueryString } from '@cdc/core/helpers/queryStringUtils'
import { SharedFilter } from '../types/SharedFilter'
import { DashboardFilters } from '../types/DashboardFilters'

const handleChildren = (sharedFilters: SharedFilter[], parentIndex: number) => {
const parentKey = sharedFilters[parentIndex].key
Expand All @@ -13,23 +12,19 @@ const handleChildren = (sharedFilters: SharedFilter[], parentIndex: number) => {
}
}

export const changeFilterActive = (index: number, value: string | string[], config: DashboardConfig): SharedFilter[] => {
const sharedFilters = _.cloneDeep(config.dashboard.sharedFilters)
const filterActive = sharedFilters[index]
const nonAutoLoadFilterIndexes = getAutoLoadVisualization(config.visualizations)?.hide
const isAutoLoad = nonAutoLoadFilterIndexes && !nonAutoLoadFilterIndexes.includes(index)

if (config.filterBehavior !== FilterBehavior.Apply || isAutoLoad) {
sharedFilters[index].active = value
handleChildren(sharedFilters, index)
export const changeFilterActive = (filterIndex: number, value: string | string[], sharedFilters: SharedFilter[], vizConfig: DashboardFilters): SharedFilter[] => {
const sharedFiltersCopy = _.cloneDeep(sharedFilters)
const currentFilter = sharedFilters[filterIndex]
if (vizConfig.filterBehavior !== FilterBehavior.Apply || vizConfig.autoLoad) {
sharedFiltersCopy[filterIndex].active = value
handleChildren(sharedFiltersCopy, filterIndex)
const queryParams = getQueryParams()
if (filterActive.setByQueryParameter && queryParams[filterActive.setByQueryParameter] !== filterActive.active) {
queryParams[filterActive.setByQueryParameter] = filterActive.active
if (currentFilter.setByQueryParameter && queryParams[currentFilter.setByQueryParameter] !== currentFilter.active) {
queryParams[currentFilter.setByQueryParameter] = currentFilter.active
updateQueryString(queryParams)
}
} else {
if (Array.isArray(value)) throw Error(`Cannot set active values on urlfilters. expected: ${JSON.stringify(value)} to be a single value.`)
sharedFilters[index].queuedActive = value
sharedFiltersCopy[filterIndex].queuedActive = value
}
return sharedFilters
return sharedFiltersCopy
}

0 comments on commit 9405871

Please sign in to comment.