From 01bb0d55632bf5c9cf38582dc0464b258865d086 Mon Sep 17 00:00:00 2001 From: mjattiot Date: Thu, 19 Nov 2020 16:28:32 +0100 Subject: [PATCH] Update FilterListItem.tsx If the filter value is a nested object, the component is unable to find out if it is selected. --- .../ra-ui-materialui/src/list/filter/FilterListItem.tsx | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/ra-ui-materialui/src/list/filter/FilterListItem.tsx b/packages/ra-ui-materialui/src/list/filter/FilterListItem.tsx index 9eb6ac0dc55..cfc804ee08e 100644 --- a/packages/ra-ui-materialui/src/list/filter/FilterListItem.tsx +++ b/packages/ra-ui-materialui/src/list/filter/FilterListItem.tsx @@ -10,6 +10,7 @@ import { makeStyles } from '@material-ui/core/styles'; import CancelIcon from '@material-ui/icons/CancelOutlined'; import { useTranslate, useListFilterContext } from 'ra-core'; import { shallowEqual } from 'react-redux'; +import isEqual from 'lodash/isEqual'; const useStyles = makeStyles(theme => ({ listItem: { @@ -147,10 +148,7 @@ const FilterListItem: FC<{ label: string; value: any }> = props => { const translate = useTranslate(); const classes = useStyles(props); - const isSelected = Object.keys(value).reduce( - (acc, key) => acc && value[key] == filterValues[key], // eslint-disable-line eqeqeq - true - ); + const isSelected = isEqual(value, filterValues); const addFilter = () => { setFilters({ ...filterValues, ...value }, null, false);