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/material.dart'; import 'package:intl/intl.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 { final format = DateFormat.jm(); //"6:00 AM" initialDate = TimeOfDay.fromDateTime(format.parse(controller!.text)); // var values = controller.text.split(":"); // initialDate = TimeOfDay( // hour: int.parse(values[0]), minute: int.parse(values[1])); } catch (e) {} // ignore error } TimeOfDay? t = await showTimePicker( initialTime: initialDate, context: context, ); if (t != null && controller != null) { final format = DateFormat.jm(); //"6:00 AM" final now = new DateTime.now(); final dt = DateTime(now.year, now.month, now.day, t.hour, t.minute); controller!.text = "${format.format(dt)}"; } }, 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), ); } }