diff --git a/lib/config/config.dart b/lib/config/config.dart index fa83b9ae..f3d92582 100755 --- a/lib/config/config.dart +++ b/lib/config/config.dart @@ -13,7 +13,9 @@ const DOCTOR_ROTATION = 'https://doctorrota.hmg.com/'; // const BASE_URL = 'http://10.20.200.111:1010/'; // const BASE_URL = 'https://uat.hmgwebservices.com/'; -const BASE_URL = 'https://hmgwebservices.com/'; +// const BASE_URL = 'https://hmgwebservices.com/'; + +const BASE_URL = 'https://uat.hmgwebservices.com/'; // const BASE_URL = 'https://webservices.hmg.com/'; // diff --git a/lib/core/model/pharmacy-intervention-model/intervention_history.dart b/lib/core/model/pharmacy-intervention-model/intervention_history.dart index 7c57fb3b..c3e872b9 100644 --- a/lib/core/model/pharmacy-intervention-model/intervention_history.dart +++ b/lib/core/model/pharmacy-intervention-model/intervention_history.dart @@ -1,3 +1,5 @@ +import 'package:flutter/cupertino.dart'; + class InterventionHistoryList{ List? history = []; InterventionHistoryList.fromJson(Map json){ @@ -19,6 +21,7 @@ class InterventionHistory { String? interventionDesc; int? interventionId; String? remark; + TextEditingController remarksController = TextEditingController(); InterventionHistory({ this.authizationFormText, diff --git a/lib/screens/patients/In_patient/NoData.dart b/lib/screens/patients/In_patient/NoData.dart index 912c23cc..5c45a671 100644 --- a/lib/screens/patients/In_patient/NoData.dart +++ b/lib/screens/patients/In_patient/NoData.dart @@ -9,7 +9,7 @@ class NoData extends StatelessWidget { @override Widget build(BuildContext context) { - return Center( + return SingleChildScrollView( child: Container( child: ErrorMessage(error: TranslationBase.of(context).noDataAvailable), ), diff --git a/lib/screens/patients/insurance_approvals_details.dart b/lib/screens/patients/insurance_approvals_details.dart index 5066ace4..b355a9e7 100644 --- a/lib/screens/patients/insurance_approvals_details.dart +++ b/lib/screens/patients/insurance_approvals_details.dart @@ -436,9 +436,10 @@ class _InsuranceApprovalsDetailsState extends State { AppText('Sample') ], ), - Row( - children: [ - AppText( + model.insuranceApproval[indexInsurance].rceiptOn != null + ? Row( + children: [ + AppText( TranslationBase.of(context).receiptOn + ": ", color: Colors.grey[500], ), @@ -450,7 +451,8 @@ class _InsuranceApprovalsDetailsState extends State { ), ), ], - ), + ) + : SizedBox.shrink(), Row( children: [ AppText( diff --git a/lib/screens/pharmacy_intervention/PharmacyIntervention.dart b/lib/screens/pharmacy_intervention/PharmacyIntervention.dart index 2249d039..f0259f6e 100644 --- a/lib/screens/pharmacy_intervention/PharmacyIntervention.dart +++ b/lib/screens/pharmacy_intervention/PharmacyIntervention.dart @@ -1,3 +1,5 @@ +import 'dart:ui'; + import 'package:doctor_app_flutter/core/enum/view_state.dart'; import 'package:doctor_app_flutter/core/model/pharmacy-intervention-model/intervention_history.dart'; import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart'; @@ -19,6 +21,7 @@ class PharmacyIntervention extends StatefulWidget { } class _PharmacyInterventionState extends State { + bool isBottomSheetShown = false; @override Widget build(BuildContext context) { return BaseView(onModelReady: (model) { @@ -29,7 +32,8 @@ class _PharmacyInterventionState extends State { ]); }); }, builder: (_, model, __) { - if (model.interventionHistoryList != null) { + if (model.interventionHistoryList != null && !model.isBottomSheetShown) { + model.toggleBottomOpenValue(true); WidgetsBinding.instance.addPostFrameCallback((_) { showBottomSheet( context, @@ -117,28 +121,23 @@ class _PharmacyInterventionState extends State { showModalBottomSheet( isDismissible: true, context: context, + isScrollControlled: true, shape: RoundedRectangleBorder( borderRadius: BorderRadius.only( topLeft: Radius.circular(20), topRight: Radius.circular(20))), builder: (_) { - return DraggableScrollableSheet( - key: _sheet, - initialChildSize: 0.7, - minChildSize: 0.7, - maxChildSize: 1, - snapSizes: [ - 0.7, // constraints.maxHeight, - 1, - ], - expand: false, - controller: _controller, - builder: (_, controller) => InterventionHistoryBottomSheet( - interventionList: interventionHistory, - model: model, - controller: controller, - )); + return Padding( + padding: EdgeInsets.only(bottom: MediaQuery.of(context).viewInsets.bottom), + child: InterventionHistoryBottomSheet( + interventionList: interventionHistory, + model: model, + ), + ); }, - ).then((value) => model.toggleShowBottomSheetValue()); + ).then((value) { + model.toggleShowBottomSheetValue(); + model.toggleBottomOpenValue(false); + }); } void SearchDialog(BuildContext context, PharmacyInterventionViewModel model) { diff --git a/lib/screens/pharmacy_intervention/viewmodel/pharmacy_intervention_view_model.dart b/lib/screens/pharmacy_intervention/viewmodel/pharmacy_intervention_view_model.dart index a0449fea..dbfba2c4 100644 --- a/lib/screens/pharmacy_intervention/viewmodel/pharmacy_intervention_view_model.dart +++ b/lib/screens/pharmacy_intervention/viewmodel/pharmacy_intervention_view_model.dart @@ -12,6 +12,7 @@ import 'package:intl/intl.dart'; class PharmacyInterventionViewModel extends BaseViewModel { PharmacyInterventionService _service = locator(); MedicationList? medicationList; + bool isBottomSheetShown = false; // MedicationList? medicationList = MedicationList.fromJson({ // "entityList": [ @@ -630,4 +631,8 @@ class PharmacyInterventionViewModel extends BaseViewModel { toggleShowBottomSheetValue() { interventionHistoryList = null; } + + toggleBottomOpenValue(bool bottomSheetValue){ + isBottomSheetShown = bottomSheetValue; + } } diff --git a/lib/screens/pharmacy_intervention/widgets/InterventionHistoryBottomSheet.dart b/lib/screens/pharmacy_intervention/widgets/InterventionHistoryBottomSheet.dart index 39a4a5fa..ed6584ca 100644 --- a/lib/screens/pharmacy_intervention/widgets/InterventionHistoryBottomSheet.dart +++ b/lib/screens/pharmacy_intervention/widgets/InterventionHistoryBottomSheet.dart @@ -8,79 +8,74 @@ import 'package:flutter/material.dart'; class InterventionHistoryBottomSheet extends StatelessWidget { final List interventionList; - final ScrollController controller; + + // final ScrollController controller; final PharmacyInterventionViewModel model; - const InterventionHistoryBottomSheet( - {super.key, required this.interventionList, required this.controller, required this.model}); + const InterventionHistoryBottomSheet({super.key, required this.interventionList, required this.model}); @override Widget build(BuildContext context) { - return Material( - color: Color(0xFFF7F7F7), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.only( - topLeft: Radius.circular(20), topRight: Radius.circular(20))), - child: Padding( - padding: const EdgeInsets.symmetric(horizontal: 20.0, vertical: 32), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - AppText( - TranslationBase - .of(context) - .histories, - fontWeight: FontWeight.w700, - fontSize: 24, - color: Color(0xFF2B353E), - ), - SizedBox( - height: 16, - ), - Expanded( - child: Column( - mainAxisSize: MainAxisSize.min, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Expanded( - child: ListView.separated( - shrinkWrap: true, - controller: controller, - itemCount: interventionList.length, - itemBuilder: (context, index) => - Material( - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(10)), - color: Colors.white, - child: InterventionHistoryItem( - interventionHistory: interventionList[index], - onAcceptClick: (intervention, remarks) { - model.updateInterventionDiseaseStatus( - remarks: remarks, - isAccepted: true, - interventionID: interventionList[index].interventionId.toString(), - successMessage: TranslationBase.of(context).interventionAcceptedSuccessfully, - errorMessage: TranslationBase.of(context).unableToPerformTheAction); - Navigator.pop(context); - }, - onRejectClick: (intervention, remarks) { - model.updateInterventionDiseaseStatus( - remarks: remarks, - interventionID: interventionList[index].interventionId.toString(), - successMessage: TranslationBase.of(context).interventionRejectedSuccessfully, - errorMessage: TranslationBase.of(context).unableToPerformTheAction - ); - Navigator.pop(context); - - }, - ), + return SizedBox( + height: MediaQuery.sizeOf(context).height * (interventionList.length == 1 ? 0.5 : 0.7), + child: Material( + color: Color(0xFFF7F7F7), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.only(topLeft: Radius.circular(20), topRight: Radius.circular(20))), + child: Padding( + padding: EdgeInsets.symmetric(horizontal: 20.0, vertical: 32), + child: SingleChildScrollView( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + AppText( + TranslationBase.of(context).histories, + fontWeight: FontWeight.w700, + fontSize: 24, + color: Color(0xFF2B353E), + ), + SizedBox( + height: 16, + ), + Column( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + ListView.separated( + shrinkWrap: true, + itemCount: interventionList.length, + physics: BouncingScrollPhysics(), + itemBuilder: (context, index) => Material( + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)), + color: Colors.white, + child: InterventionHistoryItem( + remarksController: interventionList[index].remarksController, + interventionHistory: interventionList[index], + onAcceptClick: (intervention, remarks) { + model.updateInterventionDiseaseStatus( + remarks: remarks, + isAccepted: true, + interventionID: interventionList[index].interventionId.toString(), + successMessage: TranslationBase.of(context).interventionAcceptedSuccessfully, + errorMessage: TranslationBase.of(context).unableToPerformTheAction); + Navigator.pop(context); + }, + onRejectClick: (intervention, remarks) { + model.updateInterventionDiseaseStatus( + remarks: remarks, + interventionID: interventionList[index].interventionId.toString(), + successMessage: TranslationBase.of(context).interventionRejectedSuccessfully, + errorMessage: TranslationBase.of(context).unableToPerformTheAction); + Navigator.pop(context); + }, ), - separatorBuilder: (_, __) => Divider(), - )) - ], - ), - ) - ], + ), + separatorBuilder: (_, __) => Divider(), + ) + ], + ) + ], + ), + ), ), ), ); diff --git a/lib/screens/pharmacy_intervention/widgets/intervention_history_item.dart b/lib/screens/pharmacy_intervention/widgets/intervention_history_item.dart index 51cad620..b9b5a578 100644 --- a/lib/screens/pharmacy_intervention/widgets/intervention_history_item.dart +++ b/lib/screens/pharmacy_intervention/widgets/intervention_history_item.dart @@ -12,7 +12,7 @@ class InterventionHistoryItem extends StatelessWidget { final Function(InterventionHistory, String) onAcceptClick; final Function(InterventionHistory, String) onRejectClick; - final TextEditingController remarksController = TextEditingController(); + final TextEditingController remarksController; InterventionHistoryItem({ @@ -20,6 +20,7 @@ class InterventionHistoryItem extends StatelessWidget { required this.interventionHistory, required this.onAcceptClick, required this.onRejectClick, + required this.remarksController, }); diff --git a/lib/utils/utils.dart b/lib/utils/utils.dart index 096722c9..2b956957 100644 --- a/lib/utils/utils.dart +++ b/lib/utils/utils.dart @@ -141,8 +141,17 @@ class Utils { } static Future checkConnection() async { - List result = await (Connectivity().checkConnectivity()); - return result.contains(ConnectivityResult.wifi)||result.contains(ConnectivityResult.mobile); + List connectivityResult = await (Connectivity().checkConnectivity()); + if (connectivityResult.contains(ConnectivityResult.mobile) || + connectivityResult.contains(ConnectivityResult.wifi) || + connectivityResult.contains(ConnectivityResult.ethernet) || + connectivityResult.contains(ConnectivityResult.bluetooth) || + connectivityResult.contains(ConnectivityResult.vpn)) { + return true; + } else { + return false; + } + // return result.contains(ConnectivityResult.wifi)||result.contains(ConnectivityResult.mobile); } static List getWorkingHours(String workingHours) {