import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/config/shared_pref_kay.dart'; import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/core/viewModel/patient_view_model.dart'; import 'package:doctor_app_flutter/screens/base/base_view.dart'; import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart'; import 'package:doctor_app_flutter/util/helpers.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/widgets/shared/app_buttons_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_text_form_field.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/rounded_container_widget.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:hexcolor/hexcolor.dart'; import 'package:intl/intl.dart'; Helpers helpers = Helpers(); class SickLeaveScreen extends StatefulWidget { @override _SickLeaveScreenState createState() => _SickLeaveScreenState(); } class _SickLeaveScreenState extends State { DrAppSharedPreferances sharedPref = new DrAppSharedPreferances(); TextEditingController _toDateController = new TextEditingController(); String _selectedClinic; Map profile = {}; void _presentDatePicker(id) { showDatePicker( context: context, initialDate: DateTime.now(), firstDate: DateTime(2019), lastDate: DateTime.now(), ).then((pickedDate) { if (pickedDate == null) { return; } setState(() { var selectedDate = DateFormat.yMd().format(pickedDate); _toDateController.text = selectedDate; }); }); } @override void initState() { getProfile(); super.initState(); } @override Widget build(BuildContext context) { return BaseView( onModelReady: (model) => model.getClinicsList(), builder: (_, model, w) => AppScaffold( baseViewModel: model, appBarTitle: TranslationBase.of(context).sickleave, body: Center( child: Container( margin: EdgeInsets.only(top: SizeConfig.realScreenHeight / 7), child: FractionallySizedBox( widthFactor: 0.9, child: ListView( children: [ Container( margin: EdgeInsets.only(left: 10, right: 10), decoration: BoxDecoration( borderRadius: BorderRadius.all(Radius.circular(6.0)), border: Border.all( width: 1.0, color: HexColor("#CCCCCC"))), padding: EdgeInsets.all(5), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ AppText( TranslationBase.of(context).sickLeaveDays, fontSize: 10, ), AppTextFormField( borderColor: Colors.white, onSaved: (value) {}, // validator: (value) { // return TextValidator().validateName(value); // }, inputFormatter: ONLY_NUMBERS) ]), ), SizedBox( height: 10, ), Container( margin: EdgeInsets.only(left: 10, right: 10), decoration: BoxDecoration( borderRadius: BorderRadius.all(Radius.circular(6.0)), border: Border.all( width: 1.0, color: HexColor("#CCCCCC"))), padding: EdgeInsets.all(5), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ AppText( TranslationBase.of(context).sickLeaveDate, fontSize: 10, ), AppTextFormField( borderColor: Colors.white, prefix: IconButton( icon: Icon(Icons.calendar_today)), textInputType: TextInputType.number, controller: _toDateController, onTap: () { _presentDatePicker('_selectedToDate'); }, inputFormatter: ONLY_DATE, onSaved: (value) {}), ], )), RoundedContainer( // margin: 10, showBorder: true, // raduis: 30, borderColor: HexColor("#CCCCCC"), width: double.infinity, child: Padding( padding: EdgeInsets.only( top: SizeConfig.widthMultiplier * 0.9, bottom: SizeConfig.widthMultiplier * 0.9, right: SizeConfig.widthMultiplier * 3, left: SizeConfig.widthMultiplier * 3), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ AppText( TranslationBase.of(context).clinicName, fontSize: 10, ), Row( mainAxisSize: MainAxisSize.max, children: [ Expanded( // add Expanded to have your dropdown button fill remaining space child: DropdownButtonHideUnderline( child: new IgnorePointer( ignoring: true, child: DropdownButton( isExpanded: true, value: getClinicName(model) ?? "", iconSize: 40, elevation: 16, selectedItemBuilder: (BuildContext context) { return model .getClinicNameList() .map((item) { return Row( mainAxisSize: MainAxisSize.max, children: [ AppText( item, fontSize: SizeConfig .textMultiplier * 2.1, ), ], ); }).toList(); }, onChanged: (newValue) => {}, items: model .getClinicNameList() .map((item) { return DropdownMenuItem( value: item.toString(), child: Text( item, textAlign: TextAlign.end, ), ); }).toList(), ))), ), ], ) ], ), )), Container( margin: EdgeInsets.only(left: 10, right: 10), decoration: BoxDecoration( borderRadius: BorderRadius.all(Radius.circular(6.0)), border: Border.all( width: 1.0, color: HexColor("#CCCCCC"))), padding: EdgeInsets.all(5), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ AppText( TranslationBase.of(context).doctorName, fontSize: 10, ), AppTextFormField( readOnly: true, hintText: profile['DoctorName'], borderColor: Colors.white, onSaved: (value) {}, // validator: (value) { // return TextValidator().validateName(value); // }, inputFormatter: ONLY_NUMBERS) ], ), ), SizedBox( height: 10, ), Container( margin: EdgeInsets.only(left: 10, right: 10), decoration: BoxDecoration( borderRadius: BorderRadius.all(Radius.circular(6.0)), border: Border.all( width: 1.0, color: HexColor("#CCCCCC"))), padding: EdgeInsets.all(5), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ AppText( TranslationBase.of(context).remarks, fontSize: 10, ), AppTextFormField( borderColor: Colors.white, onSaved: (value) {}, // validator: (value) { // return TextValidator().validateName(value); // }, inputFormatter: ONLY_NUMBERS) ], ), ), Container( margin: EdgeInsets.all(SizeConfig.widthMultiplier * 5), child: Wrap( alignment: WrapAlignment.center, children: [ AppButton( title: TranslationBase.of(context).submit, onPressed: () { // _validateInputs(); }, ), ], ), ) ], ), ), ), ), )); } getProfile() async { Map p = await sharedPref.getObj(DOCTOR_PROFILE); setState(() { this.profile = p; }); } getClinicName(model) { var clinicInfo = model.clinicsList .where((i) => i['ClinicID'] == this.profile['ClinicID']) .toList(); print(clinicInfo); return clinicInfo[0]['ClinicDescription']; } }