Skip to content

Commit fad5625

Browse files
committed
fix: Show interactive filter in filters only if active field is segment
1 parent 1b7478e commit fad5625

2 files changed

Lines changed: 18 additions & 16 deletions

File tree

app/configurator/components/filters.tsx

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ import useEvent from "@/utils/use-event";
8383

8484
import { interlace } from "../../utils/interlace";
8585
import { ConfiguratorState, GenericSegmentField } from "../config-types";
86-
import { useInteractiveLegendFiltersToggle } from "../interactive-filters/interactive-filters-config-state";
86+
import { useInteractiveFiltersToggle } from "../interactive-filters/interactive-filters-config-state";
8787

8888
import { ControlSectionSkeleton } from "./chart-controls/section";
8989

@@ -342,21 +342,23 @@ const MultiFilterContent = ({
342342
);
343343
}, [colorConfig?.colorMapping, dimensionIri, colorComponent]);
344344

345-
const interactiveFilterProps = useInteractiveLegendFiltersToggle();
345+
const interactiveFilterProps = useInteractiveFiltersToggle("legend");
346346

347347
return (
348348
<Box sx={{ position: "relative" }}>
349349
<Box mb={4}>
350350
<Box sx={{ justifyContent: "space-between", display: "flex" }}>
351-
<FormControlLabel
352-
componentsProps={{ typography: { variant: "caption" } }}
353-
control={<Switch {...interactiveFilterProps} />}
354-
label={
355-
<Trans id="controls.filters.interactive.toggle">
356-
Interactive
357-
</Trans>
358-
}
359-
/>
351+
{config.activeField === "segment" ? (
352+
<FormControlLabel
353+
componentsProps={{ typography: { variant: "caption" } }}
354+
control={<Switch {...interactiveFilterProps} />}
355+
label={
356+
<Trans id="controls.filters.interactive.toggle">
357+
Interactive
358+
</Trans>
359+
}
360+
/>
361+
) : null}
360362
<Button
361363
variant="contained"
362364
size="small"

app/configurator/interactive-filters/interactive-filters-config-state.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ import useEvent from "@/utils/use-event";
1313

1414
import { FIELD_VALUE_NONE } from "../constants";
1515

16-
export const useInteractiveLegendFiltersToggle = () => {
16+
export const useInteractiveFiltersToggle = (target: "legend") => {
1717
const [state, dispatch] = useConfiguratorState(isConfiguring);
1818
const onChange = useEvent((e: ChangeEvent<HTMLInputElement>) => {
1919
const newConfig = produce(
2020
state.chartConfig.interactiveFiltersConfig,
2121
(draft) => {
22-
if (draft?.legend) {
23-
draft.legend.active = e.currentTarget.checked;
22+
if (draft?.[target]) {
23+
draft[target].active = e.currentTarget.checked;
2424
}
2525

2626
return draft;
@@ -35,12 +35,12 @@ export const useInteractiveLegendFiltersToggle = () => {
3535

3636
const stateValue = get(
3737
state,
38-
"chartConfig.interactiveFiltersConfig.legend.active"
38+
`chartConfig.interactiveFiltersConfig.${target}.active`
3939
);
4040
const checked = stateValue ? stateValue : false;
4141

4242
return {
43-
name: "legend",
43+
name: target,
4444
checked,
4545
onChange,
4646
};

0 commit comments

Comments
 (0)