fix: #1358, allows listSearchableFields to work when indicated fields are nested
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
import { Field, FieldAffectingData, fieldAffectsData } from '../../../../fields/config/types';
|
||||
import flattenFields from '../../../../utilities/flattenTopLevelFields';
|
||||
|
||||
export const getTextFieldsToBeSearched = (listSearchableFields: string[], fields: Field[]) => (): FieldAffectingData[] => {
|
||||
if (listSearchableFields) {
|
||||
const flattenedFields = flattenFields(fields);
|
||||
return flattenedFields.filter((field) => fieldAffectsData(field) && listSearchableFields.includes(field.name)) as FieldAffectingData[];
|
||||
}
|
||||
|
||||
return null;
|
||||
};
|
||||
@@ -1,6 +1,6 @@
|
||||
import React, { useState } from 'react';
|
||||
import AnimateHeight from 'react-animate-height';
|
||||
import { FieldAffectingData, fieldAffectsData } from '../../../../fields/config/types';
|
||||
import { fieldAffectsData } from '../../../../fields/config/types';
|
||||
import SearchFilter from '../SearchFilter';
|
||||
import ColumnSelector from '../ColumnSelector';
|
||||
import WhereBuilder from '../WhereBuilder';
|
||||
@@ -8,8 +8,8 @@ import SortComplex from '../SortComplex';
|
||||
import Button from '../Button';
|
||||
import { Props } from './types';
|
||||
import { useSearchParams } from '../../utilities/SearchParams';
|
||||
|
||||
import validateWhereQuery from '../WhereBuilder/validateWhereQuery';
|
||||
import { getTextFieldsToBeSearched } from './getTextFieldsToBeSearched';
|
||||
|
||||
import './index.scss';
|
||||
|
||||
@@ -38,7 +38,7 @@ const ListControls: React.FC<Props> = (props) => {
|
||||
const shouldInitializeWhereOpened = validateWhereQuery(params?.where);
|
||||
|
||||
const [titleField] = useState(() => fields.find((field) => fieldAffectsData(field) && field.name === useAsTitle));
|
||||
const [textFieldsToBeSearched] = useState(listSearchableFields ? () => fields.filter((field) => fieldAffectsData(field) && listSearchableFields.includes(field.name)) as FieldAffectingData[] : null);
|
||||
const [textFieldsToBeSearched] = useState(getTextFieldsToBeSearched(listSearchableFields, fields));
|
||||
const [visibleDrawer, setVisibleDrawer] = useState<'where' | 'sort' | 'columns'>(shouldInitializeWhereOpened ? 'where' : undefined);
|
||||
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user