|
1 | 1 | import { t, Trans } from "@lingui/macro"; |
2 | | -import { Box } from "@mui/material"; |
| 2 | +import { Box, Alert, Typography } from "@mui/material"; |
3 | 3 | import get from "lodash/get"; |
4 | 4 | import React, { ChangeEvent, useCallback, useEffect, useRef } from "react"; |
5 | 5 |
|
@@ -41,6 +41,7 @@ import { |
41 | 41 | import { |
42 | 42 | canDimensionBeMultiFiltered, |
43 | 43 | isNumericalMeasure, |
| 44 | + isStandardErrorDimension, |
44 | 45 | isTemporalDimension, |
45 | 46 | } from "@/domain/data"; |
46 | 47 | import { DimensionMetadataFragment } from "@/graphql/query-hooks"; |
@@ -165,12 +166,15 @@ export const TableColumnOptions = ({ |
165 | 166 | } |
166 | 167 |
|
167 | 168 | // Active field is always a component IRI, like in filters |
168 | | - const component = |
169 | | - metaData.dimensions.find((d) => d.iri === activeField) ?? |
170 | | - metaData.measures.find((d) => d.iri === activeField); |
| 169 | + const allComponents = [...metaData.dimensions, ...metaData.measures]; |
| 170 | + const component = allComponents.find((d) => d.iri === activeField); |
171 | 171 |
|
172 | 172 | if (!component) { |
173 | | - return <div>`No component ${activeField}`</div>; |
| 173 | + return ( |
| 174 | + <Alert icon={false} severity="error"> |
| 175 | + <Typography variant="body2">No component {activeField}</Typography> |
| 176 | + </Alert> |
| 177 | + ); |
174 | 178 | } |
175 | 179 |
|
176 | 180 | const { isGroup, isHidden } = chartConfig.fields[activeField]; |
@@ -308,7 +312,8 @@ export const TableColumnOptions = ({ |
308 | 312 | </ControlSectionContent> |
309 | 313 | </ControlSection> |
310 | 314 | )} |
311 | | - {canDimensionBeMultiFiltered(component) ? ( |
| 315 | + {canDimensionBeMultiFiltered(component) && |
| 316 | + !isStandardErrorDimension(component) ? ( |
312 | 317 | <ControlSection> |
313 | 318 | <SectionTitle disabled={!component} iconName="filter"> |
314 | 319 | <Trans id="controls.section.filter">Filter</Trans> |
|
0 commit comments