dateTimePickerField method
Implementation
String dateTimePickerField(String elementName, String type, Map<String, dynamic> map, {String? parent}) {
return '''
SizedBox(
height: 60,
child: Row(
children: [
SizedBox(
width: 100,
child: InputDatePickerFormField(
autofocus: ${map['autofocus'] ?? false},
errorFormatText: "${map['errorFormatText'] ?? 'Invalid Date format'}",
errorInvalidText: "${map['errorInvalidText'] ?? 'The date is not valid. It is earlier than first date, later than last date, or doesn\'t pass the selectable day test.'}",
fieldHintText: "${map['fieldHintText'] ?? 'Select a date'}",
fieldLabelText:" ${map['fieldLabelText'] ?? '$elementName'}",
initialDate: DateTime.parse(
_formData['$elementName'] ?? initialDate
),
firstDate: DateTime.parse(firstDate),
lastDate: DateTime.parse(lastDate),
onDateSaved: (DateTime date) {
_formData['$elementName'] = date.toIso8601String();
onSaved('$elementName', date.toIso8601String());
},
selectableDayPredicate: ${map['selectableDayPredicate'] ?? 'null'},
), // end InputDatePickerFormField
), // end SizedBox
Padding(
padding: const EdgeInsets.only(top: 8.0),
child: IconButton(
onPressed: () async {
DateTime? date = await showDatePicker(
context: context,
initialDate: DateTime.parse(
_formData['$elementName'] ?? initialDate
),
firstDate: DateTime.parse(firstDate ),
lastDate: DateTime.parse(lastDate),
selectableDayPredicate: null,
);
if (date != null) {
_formData['$elementName'] = date.toIso8601String();
onSaved('$elementName', date.toIso8601String());
}
},
icon: const Icon(Icons.calendar_today)),
),
],
), // end Row
)
''';
}