@@ -14,15 +14,27 @@ import {
1414 BooleanField , DateField , NumberField , ReferenceField , ReferenceManyField ,
1515 ReferenceOneField , SelectField , TextField ,
1616 // Inputs
17- BooleanInput , DateInput , DateTimeInput , NumberInput , SelectInput , TextInput , TimeInput ,
18- ReferenceInput as _ReferenceInput ,
17+ BooleanInput , DateInput , DateTimeInput , NumberInput , SelectInput , TextInput ,
18+ TimeInput as _TimeInput , ReferenceInput as _ReferenceInput ,
1919 // Filters
2020 email , maxLength , maxValue , minLength , minValue , regex , required ,
2121 // Misc
2222 AutocompleteInput , EditButton , HttpError , WithRecord
2323} from "react-admin" ;
2424import VisibilityOffIcon from "@mui/icons-material/VisibilityOff" ;
2525
26+ // Hacked TimeField/TimeInput to actually work with times.
27+ // TODO: Replace once new components are introduced using Temporal API.
28+
29+ const TimeField = ( props ) => (
30+ < WithRecord { ...props } render = {
31+ ( record ) => < DateField { ...props } showDate = { false } showTime = { true }
32+ record = { { ...record , [ props [ "source" ] ] : record [ props [ "source" ] ] === null ? null : "2020-01-01T" + record [ props [ "source" ] ] } } />
33+ } />
34+ ) ;
35+
36+ const TimeInput = ( props ) => ( < _TimeInput format = { ( v ) => v } parse = { ( v ) => v } { ...props } /> ) ;
37+
2638/** Reconfigure ReferenceInput to filter by the displayed repr field. */
2739const ReferenceInput = ( props ) => {
2840 const ref = props [ "reference" ] ;
@@ -48,7 +60,7 @@ const COMPONENTS = {
4860 Datagrid, DatagridSingle,
4961
5062 BooleanField, DateField, NumberField, ReferenceField, ReferenceManyField,
51- ReferenceOneField, SelectField, TextField,
63+ ReferenceOneField, SelectField, TextField, TimeField ,
5264
5365 BooleanInput, DateInput, DateTimeInput, NumberInput, ReferenceInput, SelectInput,
5466 TextInput, TimeInput
0 commit comments