import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../../../controllers/localization/localization.dart'; import '../../../controllers/providers/api/user_provider.dart'; import '../../../models/pantry/pentry.dart'; import '../../app_style/sizing.dart'; import '../app_text_form_field.dart'; import '../date_and_time/date_picker.dart'; import '../images/mini_one_image_picker.dart'; import '../status/pentry/pentry_status_mune.dart'; import '../status/pentry/pentry_visit_status_mune.dart'; import '../timer/app_timer.dart'; import '../titles/app_sub_title.dart'; class PentryInfoForm extends StatefulWidget { final Pentry? model; final bool? enableValidate; const PentryInfoForm({ Key? key, this.model, this.enableValidate, }) : super(key: key); @override State createState() => _PentryInfoFormState(); } class _PentryInfoFormState extends State { @override Widget build(BuildContext context) { final subtitle = AppLocalization.of(context)!.subtitle; final userProvider = Provider.of(context); return ListView( padding: EdgeInsets.only( top: 12 * AppStyle.getScaleFactor(context), left: 12 * AppStyle.getScaleFactor(context), right: 12 * AppStyle.getScaleFactor(context), bottom: 80 * AppStyle.getScaleFactor(context) ), shrinkWrap: true, physics: const ClampingScrollPhysics(), children: [ const SizedBox(height: 8,), const ASubTitle("PPM Visit Status"), if((widget.enableValidate??false) && widget.model?.ppmVisitStatus == null) ASubTitle(subtitle?.requiredWord??"",color: Colors.red,), const SizedBox(height: 4,), PentryVisitsStatusMenu( initialValue: widget.model?.ppmVisitStatus, onSelect: (status){ widget.model?.ppmVisitStatus = status; }, ), const SizedBox(height: 8,), const ASubTitle("Timer"), if((widget.enableValidate??false) && widget.model?.timer?.endAt == null) ASubTitle(subtitle?.requiredWord??"",color: Colors.red,), const SizedBox(height: 4,), AppTimer( timer: widget.model?.timer, onChange: (timer) async{ widget.model?.timer = timer; return true; }, ), const SizedBox(height: 8,), const ASubTitle("Status"), // if(widget.enableValidate && widget.model.status == null) // ASubTitle(subtitle.requiredWord,color: Colors.red,), const SizedBox(height: 4,), PentryStatusMenu( initialValue: widget.model?.status, onSelect: (status){ widget.model?.status = status; }, ), const SizedBox(height: 8,), const ASubTitle("Actual Visit Date"), if((widget.enableValidate ?? false ) && widget.model?.actualVisitDate == null) ASubTitle(subtitle?.requiredWord??"",color: Colors.red,), const SizedBox(height: 4,), ADatePicker( date: widget.model?.actualVisitDate, from: DateTime.now().subtract(const Duration(days: 30)), onDatePicker: (date){ if(date == null) return; widget.model?.actualVisitDate = date; setState(() {}); }, ), const SizedBox(height: 8,), const ASubTitle("Traveling Hours"), const SizedBox(height: 4,), ATextFormField( initialValue: (widget.model?.travelingHours ?? "").toString(), textAlign: TextAlign.center, style: Theme.of(context).textTheme.subtitle1, textInputType: TextInputType.number, onChange: (value){ widget.model?.travelingHours = value; }, ), const SizedBox(height: 12,), const ASubTitle("PPM Attachment"), AMiniOneImagePicker( //error: _validate && _serviceReport.image == null, image: widget.model?.imageFile, onPick: (image){ widget.model?.imageFile =image; }, ), const SizedBox(height: 8,), ], ); } }