diff --git a/src/client/components/TablePaginated/Filters/Filters.tsx b/src/client/components/TablePaginated/Filters/Filters.tsx index 44f7c75c21..6a6a407e18 100644 --- a/src/client/components/TablePaginated/Filters/Filters.tsx +++ b/src/client/components/TablePaginated/Filters/Filters.tsx @@ -4,6 +4,7 @@ import React from 'react' import { TablePaginatedFilterType } from 'meta/tablePaginated' import Icon from 'client/components/Icon' +import MultiSelect from 'client/components/TablePaginated/Filters/MultiSelect/MultiSelect' import Text from 'client/components/TablePaginated/Filters/Text/Text' import { TablePaginatedFilter } from 'client/components/TablePaginated/types' @@ -11,8 +12,9 @@ const componentsByFilterType: Record< TablePaginatedFilterType, React.FC & { path: string }> > = { - [TablePaginatedFilterType.TEXT]: Text, + [TablePaginatedFilterType.MULTI_SELECT]: MultiSelect, [TablePaginatedFilterType.SWITCH]: () => null, + [TablePaginatedFilterType.TEXT]: Text, } type Props = { diff --git a/src/client/components/TablePaginated/Filters/MultiSelect/MultiSelect.tsx b/src/client/components/TablePaginated/Filters/MultiSelect/MultiSelect.tsx new file mode 100644 index 0000000000..099dc44fe8 --- /dev/null +++ b/src/client/components/TablePaginated/Filters/MultiSelect/MultiSelect.tsx @@ -0,0 +1,35 @@ +import React from 'react' + +import { TablePaginatedFilterType } from 'meta/tablePaginated' + +import { useAppDispatch } from 'client/store' +import { TablePaginatedActions } from 'client/store/ui/tablePaginated' +import { useTablePaginatedFilterValue } from 'client/store/ui/tablePaginated/hooks' +import Select from 'client/components/Inputs/Select' +import { TablePaginatedFilter } from 'client/components/TablePaginated/types' + +type Props = TablePaginatedFilter & { + path: string +} + +const MultiSelect = (props: Props) => { + const { fieldName, label, path, options } = props + + const dispatch = useAppDispatch() + + const filterValue = useTablePaginatedFilterValue(path, fieldName) + + const handleChange = (value: Array) => { + dispatch( + TablePaginatedActions.setFilterValue({ + fieldName, + path, + value, + }) + ) + } + + return