@@ -58,6 +58,7 @@ import {
5858} from "@/stores/interactive-filters" ;
5959import { assert } from "@/utils/assert" ;
6060import { hierarchyToOptions } from "@/utils/hierarchy" ;
61+ import { useResolveMostRecentValue } from "@/utils/most-recent-value" ;
6162import { useEvent } from "@/utils/use-event" ;
6263
6364type PreparedFilter = {
@@ -320,18 +321,29 @@ const DataFilter = ({
320321 ? configFilter . value
321322 : undefined ;
322323 const dataFilterValue = dimension ? dataFilters [ dimension . id ] ?. value : null ;
323- const value = dataFilterValue ?? configFilterValue ?? FIELD_VALUE_NONE ;
324+
325+ const resolvedDataFilterValue = useResolveMostRecentValue (
326+ dataFilterValue ,
327+ dimension
328+ ) ;
329+ const resolvedConfigFilterValue = useResolveMostRecentValue (
330+ configFilterValue ,
331+ dimension
332+ ) ;
333+ const value =
334+ resolvedDataFilterValue ?? resolvedConfigFilterValue ?? FIELD_VALUE_NONE ;
324335
325336 useEffect ( ( ) => {
326337 const values = dimension ?. values . map ( ( d ) => d . value ) ?? [ ] ;
327338
328339 // We only want to disable loading state when the filter is actually valid.
329340 // It can be invalid when the application is ensuring possible filters.
330341 if (
331- ( dataFilterValue && values . includes ( dataFilterValue ) ) ||
332- dataFilterValue === FIELD_VALUE_NONE
342+ ( resolvedDataFilterValue && values . includes ( resolvedDataFilterValue ) ) ||
343+ resolvedDataFilterValue === FIELD_VALUE_NONE
333344 ) {
334- updateDataFilter ( dimensionId , dataFilterValue ) ;
345+ updateDataFilter ( dimensionId , resolvedDataFilterValue ) ;
346+
335347 chartLoadingState . set ( `interactive-filter-${ dimensionId } ` , fetching ) ;
336348 } else if ( fetching || values . length === 0 ) {
337349 chartLoadingState . set ( `interactive-filter-${ dimensionId } ` , fetching ) ;
@@ -345,6 +357,7 @@ const DataFilter = ({
345357 setDataFilter ,
346358 configFilterValue ,
347359 updateDataFilter ,
360+ resolvedDataFilterValue ,
348361 ] ) ;
349362
350363 return dimension ? (
0 commit comments