diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 59cdf14c..1cf7499c 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -328,4 +328,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 649616dc336b3659ac6b2b25159d8e488e042b69 -COCOAPODS: 1.10.1 +COCOAPODS: 1.10.0.rc.1 diff --git a/lib/config/config.dart b/lib/config/config.dart index a54bc613..c5372a07 100644 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -297,6 +297,7 @@ const GET_PROCEDURE_TEMPLETE = const GET_PROCEDURE_TEMPLETE_DETAILS = "Services/Doctors.svc/REST/DAPP_ProcedureTemplateDetailsGet"; +const GET_PENDING_PATIENT_ER_FOR_DOCTOR_APP ='Services/DoctorApplication.svc/REST/GetPendingPatientERForDoctorApp'; const DOCTOR_CHECK_HAS_LIVE_CARE = "Services/DoctorApplication.svc/REST/CheckDoctorHasLiveCare"; diff --git a/lib/core/model/live_care/PendingPatientERForDoctorAppRequestModel.dart b/lib/core/model/live_care/PendingPatientERForDoctorAppRequestModel.dart new file mode 100644 index 00000000..dc1f25b3 --- /dev/null +++ b/lib/core/model/live_care/PendingPatientERForDoctorAppRequestModel.dart @@ -0,0 +1,22 @@ +class PendingPatientERForDoctorAppRequestModel { + bool outSA; + int doctorID; + String sErServiceID; + + PendingPatientERForDoctorAppRequestModel( + {this.outSA, this.doctorID, this.sErServiceID}); + + PendingPatientERForDoctorAppRequestModel.fromJson(Map json) { + outSA = json['OutSA']; + doctorID = json['DoctorID']; + sErServiceID = json['SErServiceID']; + } + + Map toJson() { + final Map data = new Map(); + data['OutSA'] = this.outSA; + data['DoctorID'] = this.doctorID; + data['SErServiceID'] = this.sErServiceID; + return data; + } +} diff --git a/lib/core/service/patient/LiveCarePatientServices.dart b/lib/core/service/patient/LiveCarePatientServices.dart index 31d3cf82..a0c94af0 100644 --- a/lib/core/service/patient/LiveCarePatientServices.dart +++ b/lib/core/service/patient/LiveCarePatientServices.dart @@ -1,5 +1,28 @@ +import 'package:doctor_app_flutter/config/config.dart'; +import 'package:doctor_app_flutter/core/model/live_care/PendingPatientERForDoctorAppRequestModel.dart'; import 'package:doctor_app_flutter/core/service/base/base_service.dart'; +import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart'; class LiveCarePatientServices extends BaseService{ + List _patientList = []; + List get patientList => _patientList; + + Future getPendingPatientERForDoctorApp(PendingPatientERForDoctorAppRequestModel pendingPatientERForDoctorAppRequestModel) async{ + hasError = false; + await baseAppClient.post( + GET_PENDING_PATIENT_ER_FOR_DOCTOR_APP, + onSuccess: (dynamic response, int statusCode) { + _patientList.clear(); + response['List_PendingPatientList'].forEach((v) { + _patientList.add(PatiantInformtion.fromJson(v)); + }); + }, + onFailure: (String error, int statusCode) { + hasError = true; + super.error = error; + }, + body: pendingPatientERForDoctorAppRequestModel.toJson(), + ); + } } \ No newline at end of file diff --git a/lib/core/viewModel/LiveCarePatientViewModel.dart b/lib/core/viewModel/LiveCarePatientViewModel.dart index de185de6..803ea92a 100644 --- a/lib/core/viewModel/LiveCarePatientViewModel.dart +++ b/lib/core/viewModel/LiveCarePatientViewModel.dart @@ -1,6 +1,59 @@ import 'package:doctor_app_flutter/core/enum/viewstate.dart'; +import 'package:doctor_app_flutter/core/model/live_care/PendingPatientERForDoctorAppRequestModel.dart'; +import 'package:doctor_app_flutter/core/service/home/dasboard_service.dart'; +import 'package:doctor_app_flutter/core/service/patient/LiveCarePatientServices.dart'; import 'package:doctor_app_flutter/core/viewModel/base_view_model.dart'; +import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart'; + +import '../../locator.dart'; class LiveCarePatientViewModel extends BaseViewModel { - getPendingPatientERForDoctorApp() async {} + List filterData = []; + + LiveCarePatientServices _liveCarePatientServices = + locator(); + + DashboardService _dashboardService = + locator(); + + getPendingPatientERForDoctorApp() async { + setState(ViewState.BusyLocal); + PendingPatientERForDoctorAppRequestModel + pendingPatientERForDoctorAppRequestModel = + PendingPatientERForDoctorAppRequestModel(sErServiceID:_dashboardService.sServiceID, outSA: false); + await _liveCarePatientServices + .getPendingPatientERForDoctorApp(pendingPatientERForDoctorAppRequestModel); + if (_liveCarePatientServices.hasError) { + error = _liveCarePatientServices.error; + + setState(ViewState.ErrorLocal); + } else { + filterData = _liveCarePatientServices.patientList; + setState(ViewState.Idle); + } + } + + searchData(String str) { + var strExist= str.length > 0 ? true : false; + if (strExist) { + filterData = []; + for (var i = 0; i < _liveCarePatientServices.patientList.length; i++) { + String fullName = + _liveCarePatientServices.patientList[i].fullName.toUpperCase(); + String patientID = + _liveCarePatientServices.patientList[i].patientId.toString(); + String mobile = + _liveCarePatientServices.patientList[i].mobileNumber.toUpperCase(); + + if (fullName.contains(str.toUpperCase()) || + patientID.contains(str)|| mobile.contains(str)) { + filterData.add(_liveCarePatientServices.patientList[i]); + } + } + notifyListeners(); + } else { + filterData = _liveCarePatientServices.patientList; + notifyListeners(); + } + } } diff --git a/lib/models/patient/patiant_info_model.dart b/lib/models/patient/patiant_info_model.dart index 2dec82d1..0c189b86 100644 --- a/lib/models/patient/patiant_info_model.dart +++ b/lib/models/patient/patiant_info_model.dart @@ -130,7 +130,7 @@ class PatiantInformtion { projectId: json["ProjectID"] ?? json["projectID"], clinicId: json["ClinicID"] ?? json["clinicID"], doctorId: json["DoctorID"] ?? json["doctorID"], - patientId: json["PatientID"] ?? + patientId: json["PatientID"]!= null ?json["PatientID"] is String ? int.parse(json["PatientID"]):json["PatientID"]: json["patientID"] ?? json['patientMRN'] ?? json['PatientMRN'], @@ -142,10 +142,10 @@ class PatiantInformtion { firstNameN: json["FirstNameN"] ?? json["firstNameN"], middleNameN: json["MiddleNameN"] ?? json["middleNameN"], lastNameN: json["LastNameN"] ?? json["lastNameN"], - gender: json["Gender"] ?? json["gender"], - fullName: json["fullName"] ?? json["fullName"], - fullNameN: json["fullNameN"] ?? json["fullNameN"], - dateofBirth: json["DateofBirth"] ?? json["dob"], + gender: json["Gender"]!= null? json["Gender"]is String ?int.parse(json["Gender"]):json["Gender"] :json["gender"], + fullName: json["fullName"] ?? json["fullName"]??json["PatientName"], + fullNameN: json["fullNameN"] ?? json["fullNameN"]??json["PatientName"], + dateofBirth: json["DateofBirth"] ?? json["dob"]??json['DateOfBirth'], nationalityId: json["NationalityID"] ?? json["nationalityID"], mobileNumber: json["MobileNumber"] ?? json["mobileNumber"], emailAddress: json["EmailAddress"] ?? json["emailAddress"], diff --git a/lib/screens/home/home_screen.dart b/lib/screens/home/home_screen.dart index 147ffd4d..b2020abe 100644 --- a/lib/screens/home/home_screen.dart +++ b/lib/screens/home/home_screen.dart @@ -13,6 +13,7 @@ import 'package:doctor_app_flutter/screens/base/base_view.dart'; import 'package:doctor_app_flutter/screens/home/dashboard_slider-item-widget.dart'; import 'package:doctor_app_flutter/screens/home/dashboard_swipe_widget.dart'; import 'package:doctor_app_flutter/screens/home/home_patient_card.dart'; +import 'package:doctor_app_flutter/screens/live_care/live_care_patient_screen.dart'; import 'package:doctor_app_flutter/screens/medicine/medicine_search_screen.dart'; import 'package:doctor_app_flutter/screens/patients/PatientsInPatientScreen.dart'; import 'package:doctor_app_flutter/screens/patients/out_patient/out_patient_screen.dart'; @@ -339,7 +340,7 @@ class _HomeScreenState extends State { Navigator.push( context, FadePage( - page: PatientInPatientScreen(), + page: LiveCarePatientScreen(), ), ); }, diff --git a/lib/screens/live_care/LiveCarePatientScreen.dart b/lib/screens/live_care/LiveCarePatientScreen.dart deleted file mode 100644 index 9f5e55ac..00000000 --- a/lib/screens/live_care/LiveCarePatientScreen.dart +++ /dev/null @@ -1,59 +0,0 @@ -import 'package:doctor_app_flutter/config/size_config.dart'; -import 'package:doctor_app_flutter/core/viewModel/LiveCarePatientViewModel.dart'; -import 'package:doctor_app_flutter/screens/base/base_view.dart'; -import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; -import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; -import 'package:flutter/material.dart'; - -class LiveCarePatientScreen extends StatefulWidget { - @override - _LiveCarePatientScreenState createState() => _LiveCarePatientScreenState(); -} - -class _LiveCarePatientScreenState extends State { - @override - Widget build(BuildContext context) { - return BaseView( - onModelReady: (model) async {}, - builder: (_, model, w) => AppScaffold( - baseViewModel: model, - isShowAppBar: false, - body: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Container( - padding: EdgeInsets.only(left: 0, right: 5, bottom: 5, top: 5), - decoration: BoxDecoration( - color: Colors.white, - ), - child: Container( - padding: EdgeInsets.only(left: 10, right: 10, bottom: 10), - margin: EdgeInsets.only(top: 50), - child: Row(children: [ - IconButton( - icon: Icon(Icons.arrow_back_ios), - color: Colors.black, //Colors.black, - onPressed: () => Navigator.pop(context), - ), - Expanded( - child: AppText( - "Live Care Patients", - fontSize: SizeConfig.textMultiplier * 2.8, - fontWeight: FontWeight.bold, - color: Color(0xFF2B353E), - ), - ), - ]), - ), - ), - Expanded( - child: Column( - children: [], - ), - ), - ], - ), - ), - ); - } -} diff --git a/lib/screens/live_care/live_care_patient_screen.dart b/lib/screens/live_care/live_care_patient_screen.dart new file mode 100644 index 00000000..132cc214 --- /dev/null +++ b/lib/screens/live_care/live_care_patient_screen.dart @@ -0,0 +1,160 @@ +import 'package:doctor_app_flutter/config/size_config.dart'; +import 'package:doctor_app_flutter/core/enum/viewstate.dart'; +import 'package:doctor_app_flutter/core/viewModel/LiveCarePatientViewModel.dart'; +import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart'; +import 'package:doctor_app_flutter/screens/base/base_view.dart'; +import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; +import 'package:doctor_app_flutter/widgets/patients/PatientCard.dart'; +import 'package:doctor_app_flutter/widgets/shared/app_loader_widget.dart'; +import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; +import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; +import 'package:doctor_app_flutter/widgets/shared/errors/error_message.dart'; +import 'package:doctor_app_flutter/widgets/shared/text_fields/app_text_form_field.dart'; +import 'package:flutter/material.dart'; + +import '../../routes.dart'; + +class LiveCarePatientScreen extends StatefulWidget { + @override + _LiveCarePatientScreenState createState() => _LiveCarePatientScreenState(); +} + +class _LiveCarePatientScreenState extends State { + final _controller = TextEditingController(); + + @override + Widget build(BuildContext context) { + return BaseView( + onModelReady: (model) async { + await model.getPendingPatientERForDoctorApp(); + + }, + builder: (_, model, w) => AppScaffold( + baseViewModel: model, + isShowAppBar: false, + body: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + padding: EdgeInsets.only(left: 0, right: 5, bottom: 5, top: 5), + decoration: BoxDecoration( + color: Colors.white, + ), + child: Container( + padding: EdgeInsets.only(left: 10, right: 10, bottom: 10), + margin: EdgeInsets.only(top: 50), + child: Row(children: [ + IconButton( + icon: Icon(Icons.arrow_back_ios), + color: Colors.black, //Colors.black, + onPressed: () => Navigator.pop(context), + ), + Expanded( + child: AppText( + "Live Care Patients", + fontSize: SizeConfig.textMultiplier * 2.8, + fontWeight: FontWeight.bold, + color: Color(0xFF2B353E), + ), + ), + ]), + ), + ), + SizedBox(height: 20,), + Center( + child: FractionallySizedBox( + widthFactor: .9, + child: Container( + width: double.maxFinite, + height: 75, + decoration: BoxDecoration( + borderRadius: BorderRadius.all( + Radius.circular(6.0)), + border: Border.all( + width: 1.0, + color: Color(0xffCCCCCC), + ), + color: Colors.white), + child: Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + Padding( + padding: EdgeInsets.only( + left: 10, top: 10), + child: AppText( + TranslationBase.of( + context) + .searchPatientName, + fontSize: 13, + )), + AppTextFormField( + // focusNode: focusProject, + controller: _controller, + borderColor: Colors.white, + prefix: IconButton( + icon: Icon( + DoctorApp.filter_1, + color: Colors.black, + ), + iconSize: 20, + padding: + EdgeInsets.only( + bottom: 30), + ), + onChanged: (String str) { + model.searchData(str); + }), + ])), + ), + ), + model.state == ViewState.Idle + ? Expanded( + child: Container( + child: model.filterData.isEmpty + ? Center( + child: ErrorMessage( + error: TranslationBase.of(context) + .youDontHaveAnyPatient, + ), + ) + : ListView.builder( + scrollDirection: Axis.vertical, + shrinkWrap: true, + itemCount: model.filterData.length, + itemBuilder: (BuildContext ctxt, int index) { + return Padding( + padding: EdgeInsets.all(8.0), + child: PatientCard( + patientInfo: model.filterData[index], + patientType: "0", + arrivalType: "0", + isFromSearch: false, + isInpatient: false, + isFromLiveCare:true, + onTap: () { + // TODO change the parameter to daynamic + Navigator.of(context).pushNamed( + PATIENTS_PROFILE, + arguments: { + "patient": model.filterData[index], + "patientType": "0", + "isSearch": false, + "isInpatient": false, + "arrivalType": "0", + "isSearchAndOut": false, + "isFromLiveCare":true + }); + }, + // isFromSearch: widget.isSearch, + ), + ); + })), + ) : Expanded( + child: AppLoaderWidget(containerColor: Colors.transparent,)), + ], + ), + ), + ); + } +} diff --git a/lib/screens/patients/profile/profile_screen/patient_profile_screen.dart b/lib/screens/patients/profile/profile_screen/patient_profile_screen.dart index 7a0305e4..dc4324ec 100644 --- a/lib/screens/patients/profile/profile_screen/patient_profile_screen.dart +++ b/lib/screens/patients/profile/profile_screen/patient_profile_screen.dart @@ -97,18 +97,16 @@ class _PatientProfileScreenState extends State Column( children: [ PatientProfileHeaderNewDesignAppBar( - patient, - arrivalType ?? '0', - patientType, - isInpatient: isInpatient, - height: (patient.patientStatusType != null && - patient.patientStatusType == 43) - ? 210 - : isDischargedPatient - ? 240 - : 0, - isDischargedPatient:isDischargedPatient - ), + patient, arrivalType ?? '0', patientType, + isInpatient: isInpatient, + isFromLiveCare: isFromLiveCare, + height: (patient.patientStatusType != null && + patient.patientStatusType == 43) + ? 210 + : isDischargedPatient + ? 240 + : 0, + isDischargedPatient: isDischargedPatient), Container( height: !isSearchAndOut ? isDischargedPatient diff --git a/lib/util/date-utils.dart b/lib/util/date-utils.dart index 44e7bffe..fb68ab4e 100644 --- a/lib/util/date-utils.dart +++ b/lib/util/date-utils.dart @@ -305,9 +305,14 @@ class AppDateUtils { return DateFormat('hh:mm a').format(dateTime); } - static String getAgeByBirthday(dynamic birthday, BuildContext context) { + static String getAgeByBirthday(String birthOfDate, BuildContext context, { bool isServerFormat = true}) { // https://leechy.dev/calculate-dates-diff-in-dart - DateTime birthDate = AppDateUtils.getDateTimeFromServerFormat(birthday); + DateTime birthDate; + if(birthOfDate.contains("/Date")) { + birthDate = AppDateUtils.getDateTimeFromServerFormat(birthOfDate); + }else{ + birthDate = DateTime.parse(birthOfDate); + } final now = DateTime.now(); int years = now.year - birthDate.year; int months = now.month - birthDate.month; diff --git a/lib/widgets/patients/PatientCard.dart b/lib/widgets/patients/PatientCard.dart index 179633e7..8515c115 100644 --- a/lib/widgets/patients/PatientCard.dart +++ b/lib/widgets/patients/PatientCard.dart @@ -1,4 +1,3 @@ -import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart'; import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart'; @@ -9,7 +8,6 @@ import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/card_with_bg_widget.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:intl/intl.dart'; class PatientCard extends StatelessWidget { final PatiantInformtion patientInfo; @@ -19,6 +17,7 @@ class PatientCard extends StatelessWidget { final bool isInpatient; final bool isMyPatient; final bool isFromSearch; + final bool isFromLiveCare; const PatientCard( {Key key, @@ -26,8 +25,12 @@ class PatientCard extends StatelessWidget { this.onTap, this.patientType, this.arrivalType, - this.isInpatient, this.isMyPatient = false, this.isFromSearch = false}) + this.isInpatient, + this.isMyPatient = false, + this.isFromSearch = false, + this.isFromLiveCare = false}) : super(key: key); + @override Widget build(BuildContext context) { return Container( @@ -43,7 +46,7 @@ class PatientCard extends StatelessWidget { marginLeft: (!isMyPatient && isInpatient)?0:10, marginSymmetric:isFromSearch ? 10 : 0.0, hasBorder: false, - bgColor:(isMyPatient && !isFromSearch)?Colors.green[500]: patientInfo.patientStatusType == 43 + bgColor:isFromLiveCare?Colors.white:(isMyPatient && !isFromSearch)?Colors.green[500]: patientInfo.patientStatusType == 43 ? Colors.green[500] :isMyPatient? Colors.green[500]:isInpatient?Colors.white:!isFromSearch?Colors.red[800]:Colors.white, widget: Container( @@ -103,7 +106,7 @@ class PatientCard extends StatelessWidget { fontSize: 10, ), ], - ): !isFromSearch && patientInfo.patientStatusType==null ? Row( + ): !isFromSearch&&!isFromLiveCare && patientInfo.patientStatusType==null ? Row( children: [ AppText( TranslationBase.of(context).notArrived, @@ -174,7 +177,7 @@ class PatientCard extends StatelessWidget { Expanded( // width: MediaQuery.of(context).size.width*0.51, child: AppText( - (Helpers.capitalize(patientInfo.firstName) + + isFromLiveCare? Helpers.capitalize(patientInfo.fullName): (Helpers.capitalize(patientInfo.firstName) + " " + Helpers.capitalize(patientInfo.lastName)), fontSize: 16, @@ -299,7 +302,7 @@ class PatientCard extends StatelessWidget { style: TextStyle(fontSize: 12)), new TextSpan( text: - "${AppDateUtils.getAgeByBirthday(patientInfo.dateofBirth, context)}", + "${AppDateUtils.getAgeByBirthday(patientInfo.dateofBirth, context, isServerFormat: !isFromLiveCare)}", style: TextStyle( fontWeight: FontWeight.w700, fontSize: 13)), diff --git a/lib/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart b/lib/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart index 07bfe8f7..995ac57a 100644 --- a/lib/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart +++ b/lib/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart @@ -19,9 +19,10 @@ class PatientProfileHeaderNewDesignAppBar extends StatelessWidget final double height; final bool isInpatient; final bool isDischargedPatient; + final bool isFromLiveCare; PatientProfileHeaderNewDesignAppBar( - this.patient, this.patientType, this.arrivalType, {this.height = 0.0, this.isInpatient=false, this.isDischargedPatient=false}); + this.patient, this.patientType, this.arrivalType, {this.height = 0.0, this.isInpatient=false, this.isDischargedPatient=false, this.isFromLiveCare = false}); @override Widget build(BuildContext context) { @@ -60,7 +61,7 @@ class PatientProfileHeaderNewDesignAppBar extends StatelessWidget ? (Helpers.capitalize(patient.firstName) + " " + Helpers.capitalize(patient.lastName)) - : Helpers.capitalize(patient.patientDetails.fullName), + : Helpers.capitalize(patient.fullName??patient.patientDetails.fullName), fontSize: SizeConfig.textMultiplier * 1.8, fontWeight: FontWeight.bold, fontFamily: 'Poppins', @@ -152,13 +153,13 @@ class PatientProfileHeaderNewDesignAppBar extends StatelessWidget )) : SizedBox(), if (SERVICES_PATIANT2[int.parse(patientType)] == - "List_MyOutPatient") + "List_MyOutPatient" && !isFromLiveCare) Container( child: Row( mainAxisAlignment: MainAxisAlignment.start, children: [ AppText( - TranslationBase.of(context).appointmentDate + + TranslationBase.of(context).appointmentDate + " : ", fontSize: 14, ), @@ -182,14 +183,14 @@ class PatientProfileHeaderNewDesignAppBar extends StatelessWidget SizedBox( width: 3.5, ), - Container( - child: AppText( - convertDateFormat2( - patient.appointmentDate ?? ''), - fontSize: 1.5 * SizeConfig.textMultiplier, - fontWeight: FontWeight.bold, + Container( + child: AppText( + convertDateFormat2( + patient.appointmentDate ?? ''), + fontSize: 1.5 * SizeConfig.textMultiplier, + fontWeight: FontWeight.bold, + ), ), - ), SizedBox( height: 0.5, ) @@ -260,7 +261,7 @@ class PatientProfileHeaderNewDesignAppBar extends StatelessWidget style: TextStyle(fontSize: 14)), new TextSpan( text: - "${AppDateUtils.getAgeByBirthday(patient.patientDetails != null ? patient.patientDetails.dateofBirth??"" : patient.dateofBirth??"", context)}", + "${AppDateUtils.getAgeByBirthday(patient.patientDetails != null ? patient.patientDetails.dateofBirth??"" : patient.dateofBirth??"", context,isServerFormat: !isFromLiveCare)}", style: TextStyle( fontWeight: FontWeight.w700, fontSize: 14)), ], diff --git a/lib/widgets/shared/app_loader_widget.dart b/lib/widgets/shared/app_loader_widget.dart index ef614209..4b6d753b 100644 --- a/lib/widgets/shared/app_loader_widget.dart +++ b/lib/widgets/shared/app_loader_widget.dart @@ -24,7 +24,7 @@ class _AppLoaderWidgetState extends State { child: Stack( children: [ Container( - color: Colors.grey.withOpacity(0.6), + color: widget.containerColor??Colors.grey.withOpacity(0.6), ), Container(child: GifLoaderContainer(), margin: EdgeInsets.only( bottom: MediaQuery.of(context).size.height * 0.09))