import 'package:fcs/helpers/theme.dart'; import 'package:fcs/localization/app_translations.dart'; import 'package:fcs/pages/main/model/language_model.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; class InputTime extends StatelessWidget { final String labelTextKey; final IconData iconData; final TextEditingController controller; final FormFieldValidator validator; final int maxLines; final bool withBorder; final Color borderColor; final TextInputType textInputType; final bool autoFocus; const InputTime( {Key key, this.labelTextKey, this.iconData, this.controller, this.validator, this.maxLines = 1, this.withBorder = false, this.borderColor, this.autoFocus = false, this.textInputType}) : super(key: key); @override Widget build(BuildContext context) { var languageModel = Provider.of(context); return Padding( padding: const EdgeInsets.only(top: 15.0, bottom: 5), child: TextFormField( readOnly: true, onTap: () async { FocusScope.of(context).unfocus(); var initialDate = TimeOfDay.now(); if (controller != null) { try { var values = controller.text.split(":"); initialDate = TimeOfDay( hour: int.parse(values[0]), minute: int.parse(values[1])); } catch (e) {} // ignore error } var t = await showTimePicker( initialTime: initialDate, context: context, ); if (t != null && controller != null) { controller.text = "${t.hour} : ${t.minute}"; } }, controller: controller, autofocus: autoFocus, cursorColor: primaryColor, style: textStyle, maxLines: maxLines, keyboardType: textInputType, decoration: new InputDecoration( // hintText: '', hintStyle: TextStyle( height: 1.5, ), labelText: labelTextKey == null ? null : AppTranslations.of(context).text(labelTextKey), labelStyle: languageModel.isEng ? newLabelStyle(color: Colors.black54, fontSize: 20) : newLabelStyleMM(color: Colors.black54, fontSize: 20), icon: iconData == null ? null : Icon( iconData, color: primaryColor, ), enabledBorder: withBorder ? OutlineInputBorder( borderSide: BorderSide(color: primaryColor, width: 1.0), ) : UnderlineInputBorder( borderSide: BorderSide(color: primaryColor, width: 1.0)), focusedBorder: withBorder ? OutlineInputBorder( borderSide: BorderSide(color: primaryColor, width: 1.0), ) : UnderlineInputBorder( borderSide: BorderSide(color: primaryColor, width: 1.0)), ), validator: validator), ); } }