Skip to content

Commit fb4614e

Browse files
committed
fix: Support charts with merged data and not merged data for dashboard filter
1 parent 63c935b commit fb4614e

1 file changed

Lines changed: 14 additions & 7 deletions

File tree

app/charts/shared/chart-state.ts

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import { LinesState } from "@/charts/line/lines-state";
1414
import { MapState } from "@/charts/map/map-state";
1515
import { PieState } from "@/charts/pie/pie-state";
1616
import { ScatterplotState } from "@/charts/scatterplot/scatterplot-state";
17+
import { DimensionsByIri, MeasuresByIri } from "@/charts/shared/ChartProps";
1718
import {
1819
getLabelWithUnit,
1920
useDimensionWithAbbreviations,
@@ -22,15 +23,14 @@ import {
2223
useTemporalEntityVariable,
2324
useTemporalVariable,
2425
} from "@/charts/shared/chart-helpers";
25-
import { DimensionsByIri, MeasuresByIri } from "@/charts/shared/ChartProps";
2626
import { Bounds } from "@/charts/shared/use-width";
2727
import { TableChartState } from "@/charts/table/table-state";
2828
import {
2929
ChartConfig,
3030
ChartType,
3131
GenericField,
32-
getAnimationField,
3332
InteractiveFiltersConfig,
33+
getAnimationField,
3434
} from "@/configurator";
3535
import {
3636
parseDate,
@@ -44,17 +44,18 @@ import {
4444
DimensionValue,
4545
GeoCoordinatesDimension,
4646
GeoShapesDimension,
47-
isNumericalMeasure,
48-
isTemporalDimension,
49-
isTemporalEntityDimension,
5047
Measure,
5148
NumericalMeasure,
5249
Observation,
5350
ObservationValue,
5451
TemporalDimension,
5552
TemporalEntityDimension,
53+
isNumericalMeasure,
54+
isTemporalDimension,
55+
isTemporalEntityDimension,
5656
} from "@/domain/data";
5757
import { Has } from "@/domain/types";
58+
import { getOriginalIris, isJoinById } from "@/graphql/join";
5859
import { TimeUnit } from "@/graphql/resolver-types";
5960
import {
6061
useChartInteractiveFilters,
@@ -437,10 +438,15 @@ export const useChartData = (
437438
const interactiveTimeRangeFilters = useMemo(() => {
438439
const isDashboardFilterActive = !!dashboardFilters.sharedFilters.find(
439440
(f) => {
440-
if (f.type !== "timeRange") {
441+
const timeRangeFilterIri = interactiveTimeRange?.componentIri;
442+
if (f.type !== "timeRange" || !timeRangeFilterIri) {
441443
return false;
442444
}
443-
return f.componentIri === interactiveTimeRange?.componentIri;
445+
return isJoinById(timeRangeFilterIri)
446+
? getOriginalIris(timeRangeFilterIri, chartConfig).includes(
447+
f.componentIri
448+
)
449+
: f.componentIri === timeRangeFilterIri;
444450
}
445451
);
446452
const interactiveTimeRangeFilter: ValuePredicate | null =
@@ -462,6 +468,7 @@ export const useChartData = (
462468
interactiveToTime,
463469
interactiveTimeRange?.active,
464470
interactiveTimeRange?.componentIri,
471+
chartConfig,
465472
]);
466473

467474
// interactive time slider

0 commit comments

Comments
 (0)