Finish Patient search design

pull/161/head
Elham Rababah 5 years ago
parent 0d8455faa7
commit 8980fc03aa

@ -1,17 +0,0 @@
import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/interceptor/http_interceptor.dart';
import 'package:http/http.dart';
// OWNER : Ibrahim albitar
// DATE : 22-04-2020
// DESCRIPTION : Custom App client to pin base url for all srvices
class AppClient {
static Client client = HttpInterceptor().getClient();
static Future<Response> post(dynamic path, {dynamic body}) async {
String _fullUrl = BASE_URL + path;
final response = await client.post(_fullUrl, body: body);
return response;
}
}

@ -221,8 +221,15 @@ const Map<String, Map<String, String>> localizedValues = {
'en': 'Type or speak the medicine name to search', 'en': 'Type or speak the medicine name to search',
'ar': ' اكتب أو انطق اسم الدواء للبحث' 'ar': ' اكتب أو انطق اسم الدواء للبحث'
}, },
"type": { "type": {'en': 'Type or Speak', 'ar': 'اكتب أو تحدث '},
'en': 'Type or Speak', "fromDate": {'en': 'From Date', 'ar': 'من تاريخ'},
'ar': 'اكتب أو تحدث ' "toDate": {'en': 'To Date', 'ar': 'الى تاريخ'},
} "searchPatientImageCaptionTitle": {
'en': 'SEARCH PATIENT',
'ar': 'البحث عن المريض'
},
"searchPatientImageCaptionBody": {
'en': 'Add Details Of Patient To search',
'ar': ' أضف تفاصيل المريض للبحث'
},
}; };

@ -1,65 +0,0 @@
import 'dart:convert';
import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
import 'package:doctor_app_flutter/providers/auth_provider.dart';
import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart';
import 'package:http/http.dart';
import 'package:http_interceptor/http_interceptor.dart';
import '../providers/auth_provider.dart';
import '../util/dr_app_shared_pref.dart';
import 'package:doctor_app_flutter/config/config.dart';
DrAppSharedPreferances sharedPref = new DrAppSharedPreferances();
List<String> publicUrls = [
LOGIN_URL,
SELECT_DEVICE_IMEI,
MEMBER_CHECK_ACTIVATION_CODE_NEW,
SEND_ACTIVATION_CODE_BY_OTP_NOTIFICATION_TYPE
];
class HttpInterceptor extends InterceptorContract {
Client getClient() {
return HttpClientWithInterceptor.build(interceptors: [this]);
}
Future<RequestData> interceptRequest({RequestData data}) async {
print('RequestData ${data.body}');
print('RequestData ${data.url}');
try {
data.headers["Content-Type"] = "application/json";
data.headers["Accept"] = "application/json";
// if (publicUrls.contains(data.url)) {
// var loggedUserInfo = await sharedPref.getObj(LOGGED_IN_USER);
// var token = await sharedPref.getString(TOKEN);
// // print("token"+token);
// // print('loggedUserInfo${loggedUserInfo["LogInTokenID"]}');
// // // the sevices handel the token in differat name so I ask to be change
// // // we must change the imple
// var body = json.decode(data.body);
// body['LogInTokenID']=token;
// data.body = json.encode(body);
// // data.body['LogInTokenID'] = '';
// } else {
// if (data.body['LogInTokenID']) {
// data.body['LogInTokenID'] = '';
// }
// if (data.body['TokenID']) {
// data.body['TokenID'] = '';
// }
// }
} catch (e) {
print(e);
}
// print('data.body${data.body}');
return data;
}
@override
Future<ResponseData> interceptResponse({ResponseData data}) async {
// print('ResponseData ${data.body}');
return data;
}
}

@ -1,6 +1,5 @@
import 'dart:convert'; import 'dart:convert';
import 'package:doctor_app_flutter/client/app_client.dart';
import 'package:doctor_app_flutter/client/base_app_client.dart'; import 'package:doctor_app_flutter/client/base_app_client.dart';
import 'package:doctor_app_flutter/config/shared_pref_kay.dart'; import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
import 'package:doctor_app_flutter/models/doctor/doctor_profile_model.dart'; import 'package:doctor_app_flutter/models/doctor/doctor_profile_model.dart';

@ -1,26 +1,27 @@
import 'package:doctor_app_flutter/config/shared_pref_kay.dart'; import 'package:doctor_app_flutter/config/shared_pref_kay.dart';
import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart';
import 'package:doctor_app_flutter/models/patient/patient_model.dart'; import 'package:doctor_app_flutter/models/patient/patient_model.dart';
import 'package:doctor_app_flutter/providers/project_provider.dart'; import 'package:doctor_app_flutter/providers/project_provider.dart';
import 'package:doctor_app_flutter/routes.dart'; import 'package:doctor_app_flutter/routes.dart';
import 'package:doctor_app_flutter/util/dr_app_shared_pref.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/helpers.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:hexcolor/hexcolor.dart';
import 'package:provider/provider.dart';
import '../../config/config.dart';
import '../../config/size_config.dart'; import '../../config/size_config.dart';
import '../../lookups/patient_lookup.dart';
import '../../models/doctor/doctor_profile_model.dart';
import '../../widgets/patients/dynamic_elements.dart';
import '../../widgets/shared/app_buttons_widget.dart'; import '../../widgets/shared/app_buttons_widget.dart';
import '../../widgets/shared/app_scaffold_widget.dart'; import '../../widgets/shared/app_scaffold_widget.dart';
import '../../widgets/shared/app_text_form_field.dart'; import '../../widgets/shared/app_text_form_field.dart';
import '../../widgets/shared/app_texts_widget.dart'; import '../../widgets/shared/app_texts_widget.dart';
import '../../widgets/shared/rounded_container_widget.dart'; import '../../widgets/shared/rounded_container_widget.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import '../../lookups/patient_lookup.dart';
import '../../widgets/patients/dynamic_elements.dart';
import '../../config/config.dart';
import '../../models/doctor/doctor_profile_model.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:provider/provider.dart';
DrAppSharedPreferances sharedPref = new DrAppSharedPreferances(); DrAppSharedPreferances sharedPref = new DrAppSharedPreferances();
Helpers helpers = Helpers(); Helpers helpers = Helpers();
@ -126,10 +127,35 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
RoundedContainer( RoundedContainer(
child: Column( child: Column(
children: <Widget>[ children: <Widget>[
Icon( Column(
Icons.search, children: <Widget>[
size: SizeConfig.imageSizeMultiplier * 15, Container(
child: Icon(
DoctorApp.search_patient,
size: 100,
color: Colors.black,
),
margin: EdgeInsets.only(top: 10),
),
Padding(
padding: const EdgeInsets.only(top: 12.0),
child: AppText(
TranslationBase.of(context).searchPatientImageCaptionTitle.toUpperCase(),
fontWeight: FontWeight.bold,
fontSize: SizeConfig.heightMultiplier * 2.5,
),
),
Padding(
padding: const EdgeInsets.only(top: 5.0),
child: AppText(
TranslationBase.of(context)
.searchPatientImageCaptionBody,
fontSize: SizeConfig.heightMultiplier * 2,
),
)
],
), ),
Container( Container(
padding: EdgeInsets.all(15), padding: EdgeInsets.all(15),
width: SizeConfig.screenWidth * 1, width: SizeConfig.screenWidth * 1,
@ -143,20 +169,18 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
height: 5, height: 5,
), ),
Container( Container(
height: 40.0,
decoration: ShapeDecoration( decoration: ShapeDecoration(
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
side: BorderSide( side: BorderSide(
width: 1.0, width: 1.0,
style: BorderStyle.solid, style: BorderStyle.solid,
color: Color(0xff707070)), color: Hexcolor("#CCCCCC")),
borderRadius: borderRadius:
BorderRadius.all(Radius.circular(5.0)), BorderRadius.all(Radius.circular(6.0)),
), ),
), ),
// margin: 0,
// showBorder: true,
// raduis: 30,
// borderColor: Color(0xff707070),
width: double.infinity, width: double.infinity,
child: Padding( child: Padding(
padding: EdgeInsets.only( padding: EdgeInsets.only(
@ -171,53 +195,54 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
// add Expanded to have your dropdown button fill remaining space // add Expanded to have your dropdown button fill remaining space
child: DropdownButtonHideUnderline( child: DropdownButtonHideUnderline(
child: DropdownButton( child: DropdownButton(
isExpanded: true, isExpanded: true,
value: _selectedType, value: _selectedType,
iconSize: 40, iconSize: 25,
elevation: 16, elevation: 16,
selectedItemBuilder: selectedItemBuilder:
(BuildContext context) { (BuildContext context) {
return PATIENT_TYPE.map((item) { return PATIENT_TYPE.map((item) {
return Row( return Row(
mainAxisSize: MainAxisSize.max, mainAxisSize: MainAxisSize.max,
children: <Widget>[ children: <Widget>[
!projectsProvider.isArabic !projectsProvider.isArabic
? AppText( ? AppText(
item['text'], item['text'],
fontSize: SizeConfig fontSize: SizeConfig
.textMultiplier * .textMultiplier *
2.1, 2.1,
) )
: AppText( : AppText(
item['text_ar'], item['text_ar'],
fontSize: SizeConfig fontSize: SizeConfig
.textMultiplier * .textMultiplier *
2.1, 2.1,
), ),
], ],
); );
}).toList(); }).toList();
}, },
onChanged: (String newValue) => { onChanged: (String newValue) =>
setState(() { {
_selectedType = newValue; setState(() {
selectedPatientType = _selectedType = newValue;
int.parse(_selectedType); selectedPatientType =
}) int.parse(_selectedType);
}, })
items: PATIENT_TYPE.map((item) { },
!projectsProvider.isArabic items: PATIENT_TYPE.map((item) {
? itemText = item['text'] !projectsProvider.isArabic
: itemText = item['text_ar']; ? itemText = item['text']
return DropdownMenuItem( : itemText = item['text_ar'];
child: Text( return DropdownMenuItem(
itemText, child: Text(
textAlign: TextAlign.end, itemText,
), textAlign: TextAlign.end,
value: item['val'], ),
); value: item['val'],
}).toList(), );
)), }).toList(),
)),
), ),
], ],
), ),
@ -226,134 +251,212 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
SizedBox( SizedBox(
height: 10, height: 10,
), ),
AppTextFormField( Container(
hintText: TranslationBase.of(context).firstName, decoration: BoxDecoration(
onSaved: (value) { borderRadius: BorderRadius.all(
value == null Radius.circular(6.0)),
? _patientSearchFormValues.setFirstName = border: Border.all(
"0" width: 1.0, color: Hexcolor("#CCCCCC"))
: _patientSearchFormValues.setFirstName = ),
value; padding: EdgeInsets.only(top: 5),
child: AppTextFormField(
if (value.toString().trim().isEmpty) { labelText: TranslationBase
_patientSearchFormValues.setFirstName = "0"; .of(context)
} .firstName,
}, borderColor: Colors.white,
// validator: (value) {
// return TextValidator().validateName(value); onSaved: (value) {
// }, value == null
inputFormatter: ONLY_LETTERS), ? _patientSearchFormValues.setFirstName =
SizedBox( "0"
height: 10, : _patientSearchFormValues.setFirstName =
value;
if (value
.toString()
.trim()
.isEmpty) {
_patientSearchFormValues.setFirstName = "0";
}
},
// validator: (value) {
// return TextValidator().validateName(value);
// },
inputFormatter: ONLY_LETTERS),
), ),
AppTextFormField(
hintText: TranslationBase.of(context).middleName,
onSaved: (value) {
value == null
? _patientSearchFormValues.setMiddleName =
"0"
: _patientSearchFormValues.setMiddleName =
value;
if (value.toString().trim().isEmpty) {
_patientSearchFormValues.setMiddleName = "0";
}
},
// validator: (value) {
// return TextValidator().validateName(value);
// },
inputFormatter: ONLY_LETTERS),
SizedBox( SizedBox(
height: 10, height: 10,
), ),
AppTextFormField( Container(
hintText: TranslationBase.of(context).lastName, decoration: BoxDecoration(
onSaved: (value) { borderRadius: BorderRadius.all(
value == null Radius.circular(6.0)),
? _patientSearchFormValues.setLastName = "0" border: Border.all(
: _patientSearchFormValues.setLastName = width: 1.0, color: Hexcolor("#CCCCCC"))
value; ),
if (value.toString().trim().isEmpty) { padding: EdgeInsets.only(top: 5),
_patientSearchFormValues.setLastName = "0"; child: AppTextFormField(
} labelText: TranslationBase
}, .of(context)
inputFormatter: ONLY_LETTERS), .middleName,
borderColor: Colors.white,
onSaved: (value) {
value == null
? _patientSearchFormValues.setMiddleName =
"0"
: _patientSearchFormValues.setMiddleName =
value;
if (value
.toString()
.trim()
.isEmpty) {
_patientSearchFormValues.setMiddleName =
"0";
}
},
// validator: (value) {
// return TextValidator().validateName(value);
// },
inputFormatter: ONLY_LETTERS),
),
SizedBox( SizedBox(
height: 10, height: 10,
), ),
AppTextFormField( Container(
textInputType: TextInputType.number, decoration: BoxDecoration(
hintText: TranslationBase.of(context).phoneNumber, borderRadius: BorderRadius.all(
// validator: (value) { Radius.circular(6.0)),
// return TextValidator().validateMobile(value); border: Border.all(
// }, width: 1.0, color: Hexcolor("#CCCCCC"))
inputFormatter: ONLY_NUMBERS, ),
onSaved: (value) { padding: EdgeInsets.only(top: 5),
value == null child: AppTextFormField(
? _patientSearchFormValues labelText: TranslationBase
.setPatientMobileNumber = "0" .of(context)
: _patientSearchFormValues .lastName,
.setPatientMobileNumber = value; borderColor: Colors.white,
onSaved: (value) {
if (value.toString().trim().isEmpty) { value == null
_patientSearchFormValues ?
.setPatientMobileNumber = "0"; _patientSearchFormValues.setLastName = "0"
} : _patientSearchFormValues.setLastName =
}, value;
if (value
.toString()
.trim()
.isEmpty) {
_patientSearchFormValues.setLastName = "0";
}
},
inputFormatter: ONLY_LETTERS),
), ),
SizedBox( SizedBox(
height: 10, height: 10,
), ),
AppTextFormField( Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.all(
Radius.circular(6.0)),
border: Border.all(
width: 1.0, color: Hexcolor("#CCCCCC"))
),
padding: EdgeInsets.only(top: 5),
child: AppTextFormField(
labelText: TranslationBase
.of(context)
.phoneNumber,
borderColor: Colors.white,
textInputType: TextInputType.number, textInputType: TextInputType.number,
hintText: TranslationBase.of(context).patientID,
//
inputFormatter: ONLY_NUMBERS, inputFormatter: ONLY_NUMBERS,
onSaved: (value) { onSaved: (value) {
// _patientSearchFormValues.PatientID = 89000;
value == null value == null
? _patientSearchFormValues.setPatientID = 0 ? _patientSearchFormValues
: _patientSearchFormValues.setPatientID = .setPatientMobileNumber = "0"
int.parse(value); : _patientSearchFormValues
if (value.toString().trim().isEmpty) { .setPatientMobileNumber = value;
_patientSearchFormValues.setPatientID = 0;
if (value
.toString()
.trim()
.isEmpty) {
_patientSearchFormValues
.setPatientMobileNumber = "0";
} }
}), },
),
),
SizedBox(
height: 10,
),
Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.all(
Radius.circular(6.0)),
border: Border.all(
width: 1.0, color: Hexcolor("#CCCCCC"))
),
padding: EdgeInsets.only(top: 5),
child: AppTextFormField(
labelText: TranslationBase
.of(context)
.patientID,
borderColor: Colors.white,
textInputType: TextInputType.number,
inputFormatter: ONLY_NUMBERS,
onSaved: (value) {
value == null
?
_patientSearchFormValues.setPatientID = 0
: _patientSearchFormValues.setPatientID =
int.parse(value);
if (value
.toString()
.trim()
.isEmpty) {
_patientSearchFormValues.setPatientID = 0;
}
}),
),
SizedBox( SizedBox(
height: 10, height: 10,
), ),
AppTextFormField( Container(
textInputType: TextInputType.number, decoration: BoxDecoration(
hintText: TranslationBase.of(context).patientFile, borderRadius: BorderRadius.all(
// validator: (value) { Radius.circular(6.0)),
// return TextValidator().validateIdNumber(value); border: Border.all(
// }, width: 1.0, color: Hexcolor("#CCCCCC"))
inputFormatter: ONLY_NUMBERS, ),
onSaved: (value) { padding: EdgeInsets.only(top: 5),
//_patientSearchFormValues. = value; child: AppTextFormField(
}, labelText: TranslationBase
.of(context)
.patientFile,
borderColor: Colors.white,
textInputType: TextInputType.number,
inputFormatter: ONLY_NUMBERS,
onSaved: (value) {},
),
), ),
(!(_selectedType == '2' || _selectedType == '4')) (!(_selectedType == '2' || _selectedType == '4'))
? DynamicElements(_patientSearchFormValues) ? DynamicElements(_patientSearchFormValues)
: SizedBox( : SizedBox(
height: 0, height: 0,
), ),
SizedBox( SizedBox(
height: 10, height: 10,
), ),
Container( Container(
// margin: 0, height: 40.0,
// showBorder: true,
// raduis: 30,
// borderColor: Color(0xff707070),
decoration: ShapeDecoration( decoration: ShapeDecoration(
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
side: BorderSide( side: BorderSide(
width: 1.0, width: 1.0,
style: BorderStyle.solid, style: BorderStyle.solid,
color: Color(0xff707070)), color: Hexcolor("#CCCCCC")),
borderRadius: borderRadius:
BorderRadius.all(Radius.circular(5.0)), BorderRadius.all(Radius.circular(6.0)),
), ),
), ),
width: double.infinity, width: double.infinity,
@ -370,29 +473,29 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
// add Expanded to have your dropdown button fill remaining space // add Expanded to have your dropdown button fill remaining space
child: DropdownButtonHideUnderline( child: DropdownButtonHideUnderline(
child: DropdownButton( child: DropdownButton(
isExpanded: true, isExpanded: true,
value: _selectedLocation, value: _selectedLocation,
iconSize: 40, iconSize: 25,
elevation: 16, elevation: 16,
selectedItemBuilder: selectedItemBuilder:
(BuildContext context) { (BuildContext context) {
return LOCATIONS.map((item) { return LOCATIONS.map((item) {
return Row( return Row(
mainAxisSize: MainAxisSize.max, mainAxisSize: MainAxisSize.max,
children: <Widget>[ children: <Widget>[
!projectsProvider.isArabic !projectsProvider.isArabic
? AppText( ? AppText(
item['text'], item['text'],
fontSize: SizeConfig fontSize: SizeConfig
.textMultiplier * .textMultiplier *
2.1, 2.1,
) )
: AppText( : AppText(
item['text-ar'], item['text-ar'],
fontSize: SizeConfig fontSize: SizeConfig
.textMultiplier * .textMultiplier *
2.1, 2.1,
) )
], ],
); );
}).toList(); }).toList();
@ -414,25 +517,43 @@ class _PatientSearchScreenState extends State<PatientSearchScreen> {
value: item['val'], value: item['val'],
); );
}).toList(), }).toList(),
)), )),
), ),
], ],
), ),
), ),
), ),
SizedBox(
height: 10,
),
Container( Container(
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[ children: <Widget>[
Checkbox( Container(
value: true, decoration: BoxDecoration(
activeColor: Color(0xffFFDDD9), borderRadius: BorderRadius.all(
onChanged: (bool newValue) {}), Radius.circular(6.0)),
AppText( border: Border.all(
TranslationBase.of(context) width: 1.0,
.onlyArrivedPatient, color: Hexcolor("#CCCCCC"))
fontSize: SizeConfig.textMultiplier * 2), ),
])), height: 25,
width: 25,
child: Checkbox(
value: true,
checkColor: Hexcolor("#2A930A"),
activeColor: Colors.white,
onChanged: (bool newValue) {}),
),
SizedBox(width: 12,),
AppText(
TranslationBase
.of(context)
.onlyArrivedPatient,
fontSize: SizeConfig.textMultiplier *
2),
])),
SizedBox( SizedBox(
height: 10, height: 10,
), ),

@ -233,16 +233,35 @@ class TranslationBase {
String get livecare => localizedValues['livecare'][locale.languageCode]; String get livecare => localizedValues['livecare'][locale.languageCode];
String get beingBad => localizedValues['beingBad'][locale.languageCode]; String get beingBad => localizedValues['beingBad'][locale.languageCode];
String get beingGreat => localizedValues['beingGreat'][locale.languageCode]; String get beingGreat => localizedValues['beingGreat'][locale.languageCode];
String get cancel => localizedValues['cancel'][locale.languageCode]; String get cancel => localizedValues['cancel'][locale.languageCode];
String get done => localizedValues['done'][locale.languageCode]; String get done => localizedValues['done'][locale.languageCode];
String get searchMedicineImageCaption => localizedValues['searchMedicineImageCaption'][locale.languageCode];
String get searchMedicineImageCaption =>
localizedValues['searchMedicineImageCaption'][locale.languageCode];
String get type => localizedValues['type'][locale.languageCode]; String get type => localizedValues['type'][locale.languageCode];
String get resumecall => localizedValues['resumecall'][locale.languageCode]; String get resumecall => localizedValues['resumecall'][locale.languageCode];
String get endcallwithcharge => String get endcallwithcharge =>
localizedValues['endcallwithcharge'][locale.languageCode]; localizedValues['endcallwithcharge'][locale.languageCode];
String get endcall => localizedValues['endcall'][locale.languageCode]; String get endcall => localizedValues['endcall'][locale.languageCode];
String get transfertoadmin => String get transfertoadmin =>
localizedValues['transfertoadmin'][locale.languageCode]; localizedValues['transfertoadmin'][locale.languageCode];
String get fromDate => localizedValues['toDate'][locale.languageCode];
String get toDate => localizedValues['toDate'][locale.languageCode];
String get searchPatientImageCaptionTitle =>
localizedValues['searchPatientImageCaptionTitle'][locale.languageCode];
String get searchPatientImageCaptionBody =>
localizedValues['searchPatientImageCaptionBody'][locale.languageCode];
} }
class TranslationBaseDelegate extends LocalizationsDelegate<TranslationBase> { class TranslationBaseDelegate extends LocalizationsDelegate<TranslationBase> {

@ -1,5 +1,6 @@
import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/models/patient/patient_model.dart'; import 'package:doctor_app_flutter/models/patient/patient_model.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/shared/app_text_form_field.dart'; import 'package:doctor_app_flutter/widgets/shared/app_text_form_field.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
@ -68,34 +69,17 @@ class _DynamicElementsState extends State<DynamicElements> {
), ),
AppTextFormField( AppTextFormField(
textInputType: TextInputType.number, textInputType: TextInputType.number,
hintText: 'From', hintText: TranslationBase.of(context).fromDate,
controller: _fromDateController, controller: _fromDateController,
inputFormatter: ONLY_DATE, inputFormatter: ONLY_DATE,
onTap: () { onTap: () {
_presentDatePicker('_selectedFromDate'); _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) { onSaved: (value) {
if (_fromDateController.text.toString().trim().isEmpty) { if (_fromDateController.text.toString().trim().isEmpty) {
widget._patientSearchFormValues.From = "0"; widget._patientSearchFormValues.From = "0";
} else { } else {
widget._patientSearchFormValues.From = _fromDateController.text.replaceAll("/", "-"); widget._patientSearchFormValues.From = _fromDateController.text.replaceAll("/", "-");
// _fromDateController.text;
} }
}, },
), ),
@ -104,28 +88,23 @@ class _DynamicElementsState extends State<DynamicElements> {
), ),
AppTextFormField( AppTextFormField(
textInputType: TextInputType.number, textInputType: TextInputType.number,
hintText: 'TO', hintText: TranslationBase
.of(context)
.toDate,
controller: _toDateController, controller: _toDateController,
onTap: () { onTap: () {
_presentDatePicker('_selectedToDate'); _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, inputFormatter: ONLY_DATE,
onSaved: (value) { onSaved: (value) {
if (_toDateController.text.toString().trim().isEmpty) { if (_toDateController.text
.toString()
.trim()
.isEmpty) {
widget._patientSearchFormValues.To = "0"; widget._patientSearchFormValues.To = "0";
} else { } else {
widget._patientSearchFormValues.To = _toDateController.text.replaceAll("/", "-"); widget._patientSearchFormValues.To =
_toDateController.text.replaceAll("/", "-");
} }
}, },
), ),

@ -15,7 +15,7 @@ class AppButton extends StatefulWidget {
final double fontSize; final double fontSize;
final double padding; final double padding;
AppButton({@required this.onPressed, this.title, this.icon, this.color, this.fontSize = 2, this.padding = 4}); AppButton({@required this.onPressed, this.title, this.icon, this.color, this.fontSize = 2, this.padding = 5});
_AppButtonState createState() => _AppButtonState(); _AppButtonState createState() => _AppButtonState();

@ -22,7 +22,9 @@ class AppTextFormField extends FormField<String> {
FocusNode focusNode, FocusNode focusNode,
TextInputAction textInputAction, TextInputAction textInputAction,
ValueChanged<String> onFieldSubmitted, ValueChanged<String> onFieldSubmitted,
IconButton prefix}) IconButton prefix,
String labelText,
borderColor})
: super( : super(
onSaved: onSaved, onSaved: onSaved,
validator: validator, validator: validator,
@ -42,14 +44,24 @@ class AppTextFormField extends FormField<String> {
textInputAction: textInputAction, textInputAction: textInputAction,
onFieldSubmitted: onFieldSubmitted, onFieldSubmitted: onFieldSubmitted,
decoration: InputDecoration( decoration: InputDecoration(
hintText: hintText,suffixIcon: prefix, hintText: hintText,
hintStyle: TextStyle(fontSize: SizeConfig.textMultiplier * 1.8,), suffixIcon: prefix,
hintStyle: TextStyle(
fontSize: SizeConfig.textMultiplier * 1.8,),
contentPadding: EdgeInsets.fromLTRB(20.0, 0.0, 20.0, 0.0), contentPadding: EdgeInsets.fromLTRB(20.0, 0.0, 20.0, 0.0),
labelText: labelText,
labelStyle: TextStyle(
fontSize: SizeConfig.textMultiplier * 1.7,),
enabledBorder: OutlineInputBorder( enabledBorder: OutlineInputBorder(
borderRadius: BorderRadius.all(Radius.circular(6)), borderRadius: BorderRadius.all(Radius.circular(6)),
borderSide: BorderSide(color: Hexcolor("#CCCCCC")), borderSide: BorderSide(
color: borderColor != null ? borderColor : Hexcolor(
"#CCCCCC")),
), ),
focusedBorder: OutlineInputBorder( focusedBorder: OutlineInputBorder(
borderSide: BorderSide(
color: borderColor != null ? borderColor : Hexcolor(
"#CCCCCC")),
borderRadius: BorderRadius.all(Radius.circular(6)), borderRadius: BorderRadius.all(Radius.circular(6)),
) )
//BorderRadius.all(Radius.circular(20)); //BorderRadius.all(Radius.circular(20));

Loading…
Cancel
Save