Skip to content

Commit

Permalink
fix: datepicker filter fix
Browse files Browse the repository at this point in the history
  • Loading branch information
Domino987 committed Jul 12, 2021
1 parent c3e46fc commit 7bb9169
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 15 deletions.
2 changes: 2 additions & 0 deletions src/components/MTableEditField/DateField.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import React from 'react';
import DateFnsUtils from '@date-io/date-fns';
import { TextField } from '@material-ui/core';
import { LocalizationProvider, DatePicker } from '@material-ui/lab';

function DateField({
Expand Down Expand Up @@ -44,6 +45,7 @@ function DateField({
fontSize: 13
}
}}
renderInput={(params) => <TextField {...params} />}
inputProps={{
'aria-label': `${columnDef.title}: press space to edit`
}}
Expand Down
36 changes: 27 additions & 9 deletions src/components/MTableFilterRow/DateFilter.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import React from 'react';
import DateFnsUtils from '@date-io/date-fns';
import AdapterDateFns from '@material-ui/lab/AdapterDateFns';
import TextField from '@material-ui/core/TextField';
import { getLocalizedFilterPlaceHolder } from './utils';
import {
DatePicker,
DateTimePicker,
LocalizationProvider,
TimePicker
TimePicker,
LocalizationProvider
} from '@material-ui/lab';

function DateFilter({
Expand All @@ -20,22 +21,39 @@ function DateFilter({
const pickerProps = {
value: columnDef.tableData.filterValue || null,
onChange: onDateInputChange,
placeholder: getLocalizedFilterPlaceHolder(columnDef),
placeholder: getLocalizedFilterPlaceHolder(columnDef, localization),
clearable: true
};

let dateInputElement = null;
if (columnDef.type === 'date') {
dateInputElement = <DatePicker {...pickerProps} ref={forwardedRef} />;
dateInputElement = (
<DatePicker
{...pickerProps}
ref={forwardedRef}
renderInput={(params) => <TextField {...params} />}
/>
);
} else if (columnDef.type === 'datetime') {
dateInputElement = <DateTimePicker {...pickerProps} ref={forwardedRef} />;
dateInputElement = (
<DateTimePicker
{...pickerProps}
ref={forwardedRef}
renderInput={(params) => <TextField {...params} />}
/>
);
} else if (columnDef.type === 'time') {
dateInputElement = <TimePicker {...pickerProps} ref={forwardedRef} />;
dateInputElement = (
<TimePicker
{...pickerProps}
ref={forwardedRef}
renderInput={(params) => <TextField {...params} />}
/>
);
}

return (
<LocalizationProvider
dateAdapter={DateFnsUtils}
dateAdapter={AdapterDateFns}
locale={localization.dateTimePickerLocalization}
>
{dateInputElement}
Expand Down
2 changes: 1 addition & 1 deletion src/components/MTableFilterRow/DefaultFilter.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ function DefaultFilter({
style={columnDef.type === 'numeric' ? { float: 'right' } : {}}
type={columnDef.type === 'numeric' ? 'number' : 'search'}
value={columnDef.tableData.filterValue || ''}
placeholder={getLocalizedFilterPlaceHolder(columnDef)}
placeholder={getLocalizedFilterPlaceHolder(columnDef, localization)}
onChange={(event) => {
onFilterChanged(columnDef.tableData.id, event.target.value);
}}
Expand Down
13 changes: 8 additions & 5 deletions src/components/MTableFilterRow/LookupFilter.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,12 @@ const MenuProps = {
}
};

function LookupFilter({ columnDef, onFilterChanged, forwardedRef }) {
function LookupFilter({
columnDef,
onFilterChanged,
localization,
forwardedRef
}) {
const [selectedFilter, setSelectedFilter] = useState(
columnDef.tableData.filterValue || []
);
Expand All @@ -38,7 +43,7 @@ function LookupFilter({ columnDef, onFilterChanged, forwardedRef }) {
htmlFor={'select-multiple-checkbox' + columnDef.tableData.id}
style={{ marginTop: -16 }}
>
{getLocalizedFilterPlaceHolder(columnDef)}
{getLocalizedFilterPlaceHolder(columnDef, localization)}
</InputLabel>
<Select
multiple
Expand All @@ -54,9 +59,7 @@ function LookupFilter({ columnDef, onFilterChanged, forwardedRef }) {
onFilterChanged(columnDef.tableData.id, event.target.value);
}
}}
input={
<Input id={'select-multiple-checkbox' + columnDef.tableData.id} />
}
labelId={'select-multiple-checkbox' + columnDef.tableData.id}
renderValue={(selectedArr) =>
selectedArr.map((selected) => columnDef.lookup[selected]).join(', ')
}
Expand Down

0 comments on commit 7bb9169

Please sign in to comment.