Skip to content

Commit 5ad6bbd

Browse files
fix multi-select being empty (#1273)
1 parent 0c208b0 commit 5ad6bbd

File tree

3 files changed

+13
-7
lines changed

3 files changed

+13
-7
lines changed

packages/material-react-table/src/components/inputs/MRT_FilterTextField.tsx

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -459,11 +459,11 @@ export const MRT_FilterTextField = <TData extends MRT_RowData>({
459459
multiple: isMultiSelectFilter,
460460
renderValue: isMultiSelectFilter
461461
? (selected: any) =>
462-
!selected?.length ? (
462+
!Array.isArray(selected) || selected.length === 0 ? (
463463
<Box sx={{ opacity: 0.5 }}>{filterPlaceholder}</Box>
464464
) : (
465465
<Box sx={{ display: 'flex', flexWrap: 'wrap', gap: '2px' }}>
466-
{(selected as string[])?.map((value) => {
466+
{selected.map((value: string) => {
467467
const selectedValue = dropdownOptions?.find(
468468
(option) => getValueAndLabel(option).value === value,
469469
);
@@ -481,7 +481,13 @@ export const MRT_FilterTextField = <TData extends MRT_RowData>({
481481
}}
482482
onChange={handleTextFieldChange}
483483
onClick={(e: MouseEvent<HTMLInputElement>) => e.stopPropagation()}
484-
value={filterValue ?? ''}
484+
value={
485+
isMultiSelectFilter
486+
? Array.isArray(filterValue)
487+
? filterValue
488+
: []
489+
: ''
490+
}
485491
>
486492
{(isSelectFilter || isMultiSelectFilter) && [
487493
<MenuItem disabled divider hidden key="p" value="">

packages/material-react-table/stories/features/Filtering.stories.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,11 @@ const data = [...Array(120)].map(() => ({
7373
address: faker.location.streetAddress(),
7474
age: faker.number.int(100),
7575
arrivalTime: faker.date.recent(),
76-
birthDate: faker.date.birthdate({ max: 2020, min: 1980 }),
76+
birthDate: faker.date.birthdate({ max: 2020, min: 1980, mode: 'age' }),
7777
departureTime: faker.date.recent(),
7878
firstName: faker.person.firstName(),
7979
gender: Math.random() < 0.8 ? faker.person.sex() : faker.person.gender(),
80-
hireDate: faker.date.birthdate({ max: 2024, min: 2011 }),
80+
hireDate: faker.date.birthdate({ max: 2024, min: 2011, mode: 'age' }),
8181
isActive: faker.datatype.boolean(),
8282
lastName: faker.person.lastName(),
8383
state: faker.location.state(),

packages/material-react-table/stories/fixed-bugs/mobile-date-pickers.stories.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ export default meta;
1010

1111
const data = [...Array(120)].map(() => ({
1212
arrivalTime: faker.date.recent(),
13-
birthDate: faker.date.birthdate({ max: 2020, min: 1980 }),
13+
birthDate: faker.date.birthdate({ max: 2020, min: 1980, mode: 'age' }),
1414
deliverySlot: faker.date.recent(),
1515
departureTime: faker.date.recent(),
16-
hireDate: faker.date.birthdate({ max: 2024, min: 2011 }),
16+
hireDate: faker.date.birthdate({ max: 2024, min: 2011, mode: 'age' }),
1717
startTime: faker.date.recent(),
1818
}));
1919

0 commit comments

Comments
 (0)