import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/models/pharmacies_items_request_model.dart'; import 'package:doctor_app_flutter/providers/medicine_provider.dart'; import 'package:doctor_app_flutter/screens/medicine/pharmacies_list_screen.dart'; import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart'; import 'package:doctor_app_flutter/util/dr_app_toast_msg.dart'; import 'package:doctor_app_flutter/util/helpers.dart'; import 'package:doctor_app_flutter/widgets/medicine/medicine_item_widget.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/rounded_container_widget.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../../routes.dart'; import '../../util/extenstions.dart'; DrAppSharedPreferances sharedPref = DrAppSharedPreferances(); class MedicineSearchScreen extends StatefulWidget with DrAppToastMsg { MedicineSearchScreen({this.changeLoadingStata}); final Function changeLoadingStata; @override _MedicineSearchState createState() => _MedicineSearchState(); } class _MedicineSearchState extends State { var data; final myController = TextEditingController(); Helpers helpers = new Helpers(); var _medicineModel = PharmaciesItemsRequestModel( IsLoginForDoctorApp: true, PatientOutSA: false, PatientTypeID: 1, LanguageID: 2, IPAdress: "11.11.11.11", VersionID: 1.2, TokenID: "2Fi7HoIHB0eDyekVa6tCJg==", stamp: "2020-04-23T21:01:21.492Z", SessionID: "e29zoooEJ4"); @override Widget build(BuildContext context) { return ChangeNotifierProvider( create: (context) => MedicineProvider(), //change builder to create child: Consumer( builder: (context, provider, child) => AppScaffold( appBarTitle: "Search Medicine", body: Column( children: [ RoundedContainer( child: Column( children: [ Icon( Icons.search, size: SizeConfig.imageSizeMultiplier * 15, ), Padding( padding: EdgeInsets.only( bottom: SizeConfig.heightMultiplier * 5, right: SizeConfig.heightMultiplier * 3, left: SizeConfig.heightMultiplier * 3, top: SizeConfig.heightMultiplier * 3), child: AppTextFormField( hintText: 'Type Medicine Name Here..', controller: myController, onSaved: (value) {}, // validator: (value) { // return TextValidator().validateName(value); // }, inputFormatter: ONLY_LETTERS), ) ], )), Container( margin: EdgeInsets.all(SizeConfig.widthMultiplier * 5), child: Wrap( alignment: WrapAlignment.center, children: [ AppButton( title: "Search", color: Color(0xff58434F), onPressed: () { MedicineProvider medicineProvider = Provider.of(context); searchMedicine(context, medicineProvider); }, ), ], ), ), Expanded( child: Container( width: SizeConfig.screenWidth * 0.80, child: ListView.builder( scrollDirection: Axis.vertical, shrinkWrap: true, itemCount: data == null ? 0 : data.length, itemBuilder: (BuildContext context, int index) { return InkWell( child: MedicineItemWidget( label: data[index]["ItemDescription"], ), onTap: () { //Navigator.of(context).pushNamed(PHARMACIES_LIST); Navigator.push( context, MaterialPageRoute( builder: (context) => PharmaciesListScreen( itemID: data[index]["ItemID"]), ), ); }, ); }, ), ), ), ], )))); } searchMedicine(context, MedicineProvider medicineProvider) { FocusScope.of(context).unfocus(); if (myController.text.isNullOrEmpty()) { this.setState(() { data = null; }); helpers.showErrorToast("Type Medicine Name"); return; } _medicineModel.PHR_itemName = myController.text; medicineProvider.getMedicineItem(_medicineModel).then((res) { if (res['MessageStatus'] == 1) { print("ListMedicine " + res['ListPharmcy'].toString()); this.setState(() { data = res['ListPharmcy']; }); //Navigator.of(context).pushNamed(PHARMACIES_LIST); } else { // handel error this.setState(() { data = null; }); widget.showCenterShortLoadingToast("watting"); helpers.showErrorToast(res['ErrorEndUserMessage']); } // Navigator.of(context).pushNamed(HOME); }).catchError((err) { print('$err'); this.setState(() { data = null; }); helpers.showErrorToast(); }); } }