From 763d6bb49f09918564a665485cc09957612cecc3 Mon Sep 17 00:00:00 2001 From: Elham Rababah Date: Mon, 18 Jan 2021 10:49:16 +0200 Subject: [PATCH] finish add loader --- .../medicine/medicine_search_screen.dart | 147 +++++++++--------- lib/screens/patients/patients_screen.dart | 3 +- 2 files changed, 78 insertions(+), 72 deletions(-) diff --git a/lib/screens/medicine/medicine_search_screen.dart b/lib/screens/medicine/medicine_search_screen.dart index 3a2ff96c..2c5b8213 100644 --- a/lib/screens/medicine/medicine_search_screen.dart +++ b/lib/screens/medicine/medicine_search_screen.dart @@ -15,6 +15,7 @@ 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/loader/gif_loader_dialog_utils.dart'; import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart'; import 'package:flutter/material.dart'; import 'package:permission_handler/permission_handler.dart'; @@ -162,87 +163,86 @@ class _MedicineSearchState extends State { // TODO change it secondary button and add loading AppButton( title: TranslationBase.of(context).search, - onPressed: () { - searchMedicine(context, model); + onPressed: () async{ + await searchMedicine(context, model); + }, ), ], ), ), - NetworkBaseView( - baseViewModel: model, - child: Column( - children: [ - Container( - margin: EdgeInsets.only( - left: SizeConfig.heightMultiplier * 2), - child: Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - AppText( + Column( + children: [ + Container( + margin: EdgeInsets.only( + left: SizeConfig.heightMultiplier * 2), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + AppText( + TranslationBase + .of(context) + .youCanFind + + model.pharmacyItemsList.length + .toString() + + " " + TranslationBase .of(context) - .youCanFind + - model.pharmacyItemsList.length - .toString() + - " " + - TranslationBase - .of(context) - .itemsInSearch, - fontWeight: FontWeight.bold, - ), - ], + .itemsInSearch, + fontWeight: FontWeight.bold, ), - ), - Container( - height: MediaQuery - .of(context) - .size - .height * 0.35, - child: Container( - child: ListView.builder( - scrollDirection: Axis.vertical, - shrinkWrap: true, - itemCount: - model.pharmacyItemsList == - null - ? 0 - : model - .pharmacyItemsList.length, - itemBuilder: - (BuildContext context, int index) { - return InkWell( - child: MedicineItemWidget( - label: model - .pharmacyItemsList[index] - ["ItemDescription"], - url: model - .pharmacyItemsList[index] - ["ImageSRCUrl"], + ], + ), + ), + Container( + height: MediaQuery + .of(context) + .size + .height * 0.35, + child: Container( + child: ListView.builder( + scrollDirection: Axis.vertical, + shrinkWrap: true, + itemCount: + model.pharmacyItemsList == + null + ? 0 + : model + .pharmacyItemsList.length, + itemBuilder: + (BuildContext context, int index) { + return InkWell( + child: MedicineItemWidget( + label: model + .pharmacyItemsList[index] + ["ItemDescription"], + url: model + .pharmacyItemsList[index] + ["ImageSRCUrl"], + ), + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + PharmaciesListScreen( + itemID: model + .pharmacyItemsList[ + index]["ItemID"], + url: model + .pharmacyItemsList[ + index]["ImageSRCUrl"]), ), - onTap: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => - PharmaciesListScreen( - itemID: model - .pharmacyItemsList[ - index]["ItemID"], - url: model - .pharmacyItemsList[ - index]["ImageSRCUrl"]), - ), - ); - }, ); - }, - ), - ), + }, + ); + }, ), - ], - )), + ), + ), + ], + ), ], ), ), @@ -252,7 +252,7 @@ class _MedicineSearchState extends State { ),),); } - searchMedicine(context, MedicineViewModel model) { + searchMedicine(context, MedicineViewModel model) async { FocusScope.of(context).unfocus(); if (myController.text.isNullOrEmpty()) { helpers.showErrorToast(TranslationBase @@ -267,7 +267,12 @@ class _MedicineSearchState extends State { .moreThan3Letter); return; } - model.getMedicineItem(myController.text); + + GifLoaderDialogUtils.showMyDialog(context); + + await model.getMedicineItem(myController.text); + GifLoaderDialogUtils.hideDialog(context); + } startVoiceSearch() { diff --git a/lib/screens/patients/patients_screen.dart b/lib/screens/patients/patients_screen.dart index 3083a779..a6428c21 100644 --- a/lib/screens/patients/patients_screen.dart +++ b/lib/screens/patients/patients_screen.dart @@ -317,8 +317,9 @@ class _PatientsScreenState extends State { }, builder: (_, model, w) => AppScaffold( appBarTitle: patientTypeTitle, + isLoading: _isLoading, body: _isLoading - ? DrAppCircularProgressIndeicator() + ? Container() : _isError ? DrAppEmbeddedError(error: error) : lItems == null || lItems.length == 0