import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/models/patient/patient_model.dart'; import 'package:doctor_app_flutter/widgets/shared/app_text_form_field.dart'; import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; class DynamicElements extends StatefulWidget { final PatientModel _patientSearchFormValues; DynamicElements(this._patientSearchFormValues); @override _DynamicElementsState createState() => _DynamicElementsState(); } class _DynamicElementsState extends State { TextEditingController _toDateController = new TextEditingController(); TextEditingController _fromDateController = new TextEditingController(); void _presentDatePicker(id) { showDatePicker( context: context, initialDate: DateTime.now(), firstDate: DateTime(2019), lastDate: DateTime.now(), ).then((pickedDate) { if (pickedDate == null) { return; } setState(() { print(id); var selectedDate = DateFormat.yMd().format(pickedDate); if (id == '_selectedFromDate') { // _fromDateController.text = selectedDate; selectedDate = pickedDate.year.toString() + "-" + pickedDate.month.toString().padLeft(2, '0') + "-" + pickedDate.day.toString().padLeft(2, '0'); _fromDateController.text = selectedDate; } else { selectedDate = pickedDate.year.toString() + "-" + pickedDate.month.toString().padLeft(2, '0') + "-" + pickedDate.day.toString().padLeft(2, '0'); _toDateController.text = selectedDate; // _toDateController.text = selectedDate; } }); }); } @override Widget build(BuildContext context) { return LayoutBuilder( builder: (ctx, constraints) { return Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ SizedBox( height: 10, ), AppTextFormField( textInputType: TextInputType.number, hintText: 'From', controller: _fromDateController, inputFormatter: ONLY_DATE, onTap: () { _presentDatePicker('_selectedFromDate'); }, // validator: (value) { // return TextValidator().validateDate(_fromDateController.text); // }, /* *@author: Amjad Amireh *@Date:13/5/2020 *@param: *@return:check if field empty added static value *@desc: */ onSaved: (value) { if (_fromDateController.text.toString().trim().isEmpty) { widget._patientSearchFormValues.From = "0"; } else { widget._patientSearchFormValues.From = _fromDateController.text.replaceAll("/", "-"); // _fromDateController.text; } }, ), SizedBox( height: 10, ), AppTextFormField( textInputType: TextInputType.number, hintText: 'TO', controller: _toDateController, onTap: () { _presentDatePicker('_selectedToDate'); }, // validator: (value) { // return TextValidator().validateDate(_toDateController.text); // }, /* *@author: Amjad Amireh *@Date:13/5/2020 *@param: *@return:check if field empty added static value *@desc: */ inputFormatter: ONLY_DATE, onSaved: (value) { if (_toDateController.text.toString().trim().isEmpty) { widget._patientSearchFormValues.To = "0"; } else { widget._patientSearchFormValues.To = _toDateController.text.replaceAll("/", "-"); } }, ), ], ); }, ); } }