From d971e9d0b41b7ac3f8cf7c5351c1b815ce9b34f6 Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Mon, 10 Aug 2026 19:22:44 +0300 Subject: [PATCH] Crashlytics fixes & updates --- assets/langs/en-US.json | 2 +- lib/core/api/api_client.dart | 4 +- lib/core/utils/request_utils.dart | 106 +++++++++++------- .../book_appointments_view_model.dart | 3 +- .../my_appointments_view_model.dart | 35 +++--- .../prescriptions_view_model.dart | 4 +- .../appointment_payment_page.dart | 14 ++- .../appointments/my_appointments_page.dart | 12 +- .../book_appointment/select_clinic_page.dart | 1 + .../book_appointment/select_doctor_page.dart | 5 +- .../book_appointment/widgets/doctor_card.dart | 8 +- .../widgets/preferred_language_widget.dart | 2 +- .../widgets/update_email_widget.dart | 2 +- lib/widgets/common_bottom_sheet.dart | 3 +- 14 files changed, 122 insertions(+), 79 deletions(-) diff --git a/assets/langs/en-US.json b/assets/langs/en-US.json index 69e0d66d..1f006d2c 100644 --- a/assets/langs/en-US.json +++ b/assets/langs/en-US.json @@ -21,7 +21,7 @@ "mySchedule": "My Schedule", "logout": "Logout", "respirationRate": "Respiration Rate", - "bookAppo": "New Appointment", + "bookAppo": "Book Appointment", "searchBy": "Search By:", "clinic": "Clinic", "byClinic": "By Clinic", diff --git a/lib/core/api/api_client.dart b/lib/core/api/api_client.dart index 3a5ff281..ebac476d 100644 --- a/lib/core/api/api_client.dart +++ b/lib/core/api/api_client.dart @@ -210,8 +210,8 @@ class ApiClientImp implements ApiClient { body['TokenID'] = "@dm!n"; } - body['TokenID'] = "@dm!n"; - // body['PatientID'] = 1307867; + // body['TokenID'] = "@dm!n"; + // body['PatientID'] = 3310954; // body['PatientID'] = 53320; // body['PatientTypeID'] = 1; // body['PatientOutSA'] = 0; diff --git a/lib/core/utils/request_utils.dart b/lib/core/utils/request_utils.dart index 4d4ae4b5..62399abd 100644 --- a/lib/core/utils/request_utils.dart +++ b/lib/core/utils/request_utils.dart @@ -27,7 +27,7 @@ class RequestUtils { }) { bool fileNo = false; if (nationId.isNotEmpty) { - final numericRegex = RegExp(r'^[0-9]+$'); + final numericRegex = RegExp(r'^[0-9]+$'); fileNo = nationId.length < 10 && numericRegex.hasMatch(nationId); //fileNo = nationId.length < 10 && nationId.isNumericOnly() ; if (fileNo) { @@ -40,14 +40,23 @@ class RequestUtils { if (zipCode == "0") { request.patientMobileNumberOthers = phoneNumber; } else { - request.patientMobileNumber = int.parse(phoneNumber); + // Remove any non-numeric characters before parsing + final numericPhone = phoneNumber.replaceAll(RegExp(r'[^0-9]'), ''); + final parsedPhone = int.tryParse(numericPhone); + if (parsedPhone != null) { + request.patientMobileNumber = parsedPhone; + } else { + // If parsing fails, use as string in Others field + request.patientMobileNumberOthers = phoneNumber; + } } } request.oTPSendType = otpTypeEnum.toInt(); // could map OTPTypeEnum if needed request.zipCode = zipCode; // or countryCode if defined elsewhere if (isForRegister) { - request.patientIdentificationID = int.parse(nationId); + final parsedNationId = int.tryParse(nationId.replaceAll(RegExp(r'[^0-9]'), '')); + request.patientIdentificationID = parsedNationId ?? 0; request.searchType = 1; request.isHijri = calenderType.toInt; request.patientID = patientId; @@ -56,7 +65,7 @@ class RequestUtils { request.isDentalAllowedBackend = false; } else { if (fileNo) { - request.patientID = patientId ?? int.parse(nationId); + request.patientID = patientId ?? (int.tryParse(nationId.replaceAll(RegExp(r'[^0-9]'), '')) ?? 0); request.patientIdentificationID = request.nationalID; request.searchType = 2; } else { @@ -71,15 +80,15 @@ class RequestUtils { static dynamic getCommonRequestWelcome( {required String phoneNumber, - required OTPTypeEnum otpTypeEnum, - required String? deviceToken, - required bool patientOutSA, - required String? loginTokenID, - RegistrationDataModelPayload? registeredData, - int? patientId, - required String nationIdText, - required String countryCode, - required int loginType}) { + required OTPTypeEnum otpTypeEnum, + required String? deviceToken, + required bool patientOutSA, + required String? loginTokenID, + RegistrationDataModelPayload? registeredData, + int? patientId, + required String nationIdText, + required String countryCode, + required int loginType}) { bool fileNo = false; if (nationIdText.isNotEmpty) { final numericRegex = RegExp(r'^[0-9]+$'); @@ -91,8 +100,17 @@ class RequestUtils { request.patientMobileNumberOthers = phoneNumber; request.mobileNo = phoneNumber; } else { - request.patientMobileNumber = int.parse(phoneNumber); - request.mobileNo = '0$phoneNumber'; + // Remove any non-numeric characters before parsing + final numericPhone = phoneNumber.replaceAll(RegExp(r'[^0-9]'), ''); + final parsedPhone = int.tryParse(numericPhone); + if (parsedPhone != null) { + request.patientMobileNumber = parsedPhone; + request.mobileNo = '0$numericPhone'; + } else { + // If parsing fails, use as string in Others field + request.patientMobileNumberOthers = phoneNumber; + request.mobileNo = phoneNumber; + } } request.deviceToken = deviceToken; request.projectOutSA = patientOutSA; @@ -106,8 +124,8 @@ class RequestUtils { request.searchType = registeredData.searchType != null ? registeredData.searchType : fileNo - ? 1 - : 2; + ? 1 + : 2; request.patientID = registeredData.patientId ?? 0; request.patientIdentificationID = request.nationalID = (registeredData.patientIdentificationId ?? 0); request.dob = registeredData.dob; @@ -115,7 +133,8 @@ class RequestUtils { log("nationIdText: ${nationIdText}"); } else { if (fileNo) { - request.patientID = patientId ?? int.parse(nationIdText); + final numericNationId = nationIdText.replaceAll(RegExp(r'[^0-9]'), ''); + request.patientID = patientId ?? (int.tryParse(numericNationId) ?? 0); request.patientIdentificationID = request.nationalID = '0'; request.searchType = 2; //TODO: Issue HEre is Not Login @@ -155,8 +174,17 @@ class RequestUtils { request.patientMobileNumberOthers = mobileNumber; request.mobileNo = mobileNumber; } else { - request.patientMobileNumber = int.parse(mobileNumber); - request.mobileNo = '0$mobileNumber'; + // Remove any non-numeric characters before parsing + final numericMobile = mobileNumber.replaceAll(RegExp(r'[^0-9]'), ''); + final parsedMobile = int.tryParse(numericMobile); + if (parsedMobile != null) { + request.patientMobileNumber = parsedMobile; + request.mobileNo = '0$numericMobile'; + } else { + // If parsing fails, use as string in Others field + request.patientMobileNumberOthers = mobileNumber; + request.mobileNo = mobileNumber; + } } } request.projectOutSA = patientOutSA; @@ -240,16 +268,16 @@ class RequestUtils { "Patientobject": { "TempValue": true, "PatientIdentificationType": (isDubai - ? appState.getUserRegistrationPayload.patientIdentificationId?.toString().substring(0, 1) - : appState.getNHICUserData.idNumber!.substring(0, 1)) == - "1" + ? appState.getUserRegistrationPayload.patientIdentificationId?.toString().substring(0, 1) + : appState.getNHICUserData.idNumber!.substring(0, 1)) == + "1" ? 1 : 2, "PatientIdentificationNo": - isDubai ? appState.getUserRegistrationPayload.patientIdentificationId.toString() : appState.getNHICUserData.idNumber.toString(), + isDubai ? appState.getUserRegistrationPayload.patientIdentificationId.toString() : appState.getNHICUserData.idNumber.toString(), "MobileNumber": appState.getUserRegistrationPayload.patientMobileNumber ?? 0, "PatientOutSA": (appState.getUserRegistrationPayload.zipCode == CountryEnum.saudiArabia.countryCode || - appState.getUserRegistrationPayload.zipCode == '+966') + appState.getUserRegistrationPayload.zipCode == '+966') ? 0 : 1, "FirstNameN": isDubai ? "..." : appState.getNHICUserData.firstNameAr, @@ -266,31 +294,31 @@ class RequestUtils { "DateofBirthN": date, "EmailAddress": emailAddress, "SourceType": (appState.getUserRegistrationPayload.zipCode == CountryEnum.saudiArabia.countryCode || - appState.getUserRegistrationPayload.zipCode == '+966') + appState.getUserRegistrationPayload.zipCode == '+966') ? "1" : "2", "PreferredLanguage": appState.getLanguageCode() == "ar" ? (isDubai ? "1" : 1) : (isDubai ? "2" : 2), "Marital": isDubai ? (maritalStatus == MaritalStatusTypeEnum.single - ? '0' - : maritalStatus == MaritalStatusTypeEnum.married - ? '1' - : '2') + ? '0' + : maritalStatus == MaritalStatusTypeEnum.married + ? '1' + : '2') : (appState.getNHICUserData.maritalStatusCode == 'U' - ? '0' - : appState.getNHICUserData.maritalStatusCode == 'M' - ? '1' - : '2'), + ? '0' + : appState.getNHICUserData.maritalStatusCode == 'M' + ? '1' + : '2'), }, "PatientIdentificationID": - isDubai ? appState.getUserRegistrationPayload.patientIdentificationId.toString() : appState.getNHICUserData.idNumber.toString(), + isDubai ? appState.getUserRegistrationPayload.patientIdentificationId.toString() : appState.getNHICUserData.idNumber.toString(), "PatientMobileNumber": appState.getUserRegistrationPayload.patientMobileNumber.toString()[0] == '0' ? appState.getUserRegistrationPayload.patientMobileNumber : '0${appState.getUserRegistrationPayload.patientMobileNumber}', "DOB": dob, "IsHijri": appState.getUserRegistrationPayload.isHijri, "PatientOutSA": (appState.getUserRegistrationPayload.zipCode == CountryEnum.saudiArabia.countryCode || - appState.getUserRegistrationPayload.zipCode == '+966') + appState.getUserRegistrationPayload.zipCode == '+966') ? 0 : 1, "isDentalAllowedBackend": appState.getUserRegistrationPayload.isDentalAllowedBackend, @@ -314,7 +342,9 @@ class RequestUtils { request.sharedPatientId = 0; request.sharedPatientIdentificationId = nationalIDorFile; } else if (loginType == 2) { - request.sharedPatientId = int.parse(nationalIDorFile); + // Remove any non-numeric characters before parsing + final numericId = nationalIDorFile.replaceAll(RegExp(r'[^0-9]'), ''); + request.sharedPatientId = int.tryParse(numericId) ?? 0; request.sharedPatientIdentificationId = ''; } request.searchType = loginType; @@ -325,4 +355,4 @@ class RequestUtils { request.isDentalAllowedBackend = false; return request; } -} +} \ No newline at end of file diff --git a/lib/features/book_appointments/book_appointments_view_model.dart b/lib/features/book_appointments/book_appointments_view_model.dart index 8ec370a4..4831901d 100644 --- a/lib/features/book_appointments/book_appointments_view_model.dart +++ b/lib/features/book_appointments/book_appointments_view_model.dart @@ -676,7 +676,6 @@ class BookAppointmentsViewModel extends ChangeNotifier { (failure) async { isDoctorsListLoading = false; if (onError != null) onError(LocaleKeys.noDoctorFound.tr()); - notifyListeners(); }, (apiResponse) { @@ -691,7 +690,7 @@ class BookAppointmentsViewModel extends ChangeNotifier { clearSearchFilters(); getFiltersFromDoctorList(); _groupDoctorsList(); - setIsNearestAppointmentSelected(isNearest); + // setIsNearestAppointmentSelected(isNearest); notifyListeners(); if (onSuccess != null) { onSuccess(apiResponse); diff --git a/lib/features/my_appointments/my_appointments_view_model.dart b/lib/features/my_appointments/my_appointments_view_model.dart index 88fb8e64..293dec71 100644 --- a/lib/features/my_appointments/my_appointments_view_model.dart +++ b/lib/features/my_appointments/my_appointments_view_model.dart @@ -78,7 +78,7 @@ class MyAppointmentsViewModel extends ChangeNotifier { List patientUpcomingAppointmentsHistoryList = []; List patientArrivedAppointmentsHistoryList = []; - List patientAllArrivedAppointmentsHistoryList = []; + // List patientAllArrivedAppointmentsHistoryList = []; List patientMyDoctorsList = []; @@ -174,7 +174,7 @@ class MyAppointmentsViewModel extends ChangeNotifier { patientAppointmentsHistoryList.clear(); patientUpcomingAppointmentsHistoryList.clear(); patientArrivedAppointmentsHistoryList.clear(); - patientAllArrivedAppointmentsHistoryList.clear(); + // patientAllArrivedAppointmentsHistoryList.clear(); patientEyeMeasurementsAppointmentsHistoryList.clear(); isMyAppointmentsLoading = true; isTimeLineAppointmentsLoading = true; @@ -290,7 +290,7 @@ class MyAppointmentsViewModel extends ChangeNotifier { patientAppointmentsByHospital.clear(); patientAppointmentsViewList.clear(); - patientAllArrivedAppointmentsHistoryList.clear(); + // patientAllArrivedAppointmentsHistoryList.clear(); filteredAppointmentList.clear(); patientAppointmentsHistoryList.clear(); patientUpcomingAppointmentsHistoryList.clear(); @@ -329,7 +329,7 @@ class MyAppointmentsViewModel extends ChangeNotifier { isMyAppointmentsLoading = false; isAppointmentDataToBeLoaded = false; if (!isForTimeLine) { - patientAllArrivedAppointmentsHistoryList = apiResponse.data!; + // patientAllArrivedAppointmentsHistoryList = apiResponse.data!; isArrivedAppointmentDataLoaded = true; isFullArrivedAppointmentsLoaded = true; } @@ -383,7 +383,7 @@ class MyAppointmentsViewModel extends ChangeNotifier { // Handle error } else if (apiResponse.messageStatus == 1) { patientArrivedAppointmentsHistoryList = apiResponse.data!; - patientAllArrivedAppointmentsHistoryList = apiResponse.data!; + // patientAllArrivedAppointmentsHistoryList = apiResponse.data!; isArrivedAppointmentDataLoaded = true; isFullArrivedAppointmentsLoaded = true; @@ -414,9 +414,9 @@ class MyAppointmentsViewModel extends ChangeNotifier { availableFilters.add(AppointmentListingFilters.LIVECARE); } - if (filteredAppointmentList.any((element) => element.isLiveCareAppointment == false)) { - availableFilters.add(AppointmentListingFilters.WALKIN); - } + // if (filteredAppointmentList.any((element) => element.isLiveCareAppointment == false)) { + // availableFilters.add(AppointmentListingFilters.WALKIN); + // } if (filteredAppointmentList.any((element) => AppointmentType.isArrived(element) == true)) { availableFilters.add(AppointmentListingFilters.ARRIVED); @@ -853,15 +853,15 @@ class MyAppointmentsViewModel extends ChangeNotifier { selectedFilter = []; // if(previouslySelectedTab == selectedTabIndex ) return; switch (index) { + // case 0: + // filteredAppointmentList.clear(); + // filteredAppointmentList.addAll(patientAppointmentsHistoryList); + // break; case 0: - filteredAppointmentList.clear(); - filteredAppointmentList.addAll(patientAppointmentsHistoryList); - break; - case 1: filteredAppointmentList.clear(); filteredAppointmentList.addAll(patientUpcomingAppointmentsHistoryList); break; - case 2: + case 1: filteredAppointmentList.clear(); filteredAppointmentList.addAll(patientArrivedAppointmentsHistoryList); break; @@ -887,11 +887,12 @@ class MyAppointmentsViewModel extends ChangeNotifier { this.end = end; isDateFilterSelected = true; List sourceList = []; - if (selectedTabIndex == 0) { - sourceList = patientAppointmentsHistoryList; - } else if (selectedTabIndex == 1) { + // if (selectedTabIndex == 0) { + // sourceList = patientAppointmentsHistoryList; + // } else + if (selectedTabIndex == 0) { sourceList = patientUpcomingAppointmentsHistoryList; - } else if (selectedTabIndex == 2) { + } else if (selectedTabIndex == 1) { sourceList = patientArrivedAppointmentsHistoryList; } // if (isDateFilterSelected) sourceList = filteredAppointmentList; diff --git a/lib/features/prescriptions/prescriptions_view_model.dart b/lib/features/prescriptions/prescriptions_view_model.dart index cdd85b9f..d75b3f8e 100644 --- a/lib/features/prescriptions/prescriptions_view_model.dart +++ b/lib/features/prescriptions/prescriptions_view_model.dart @@ -191,7 +191,9 @@ class PrescriptionsViewModel extends ChangeNotifier { result.fold( // (failure) async => await errorHandlerService.handleError(failure: failure), (failure) async { - onError!(failure.message); + if (onError != null) { + onError(failure.message); + } }, (apiResponse) async { if (apiResponse.messageStatus == 2) { diff --git a/lib/presentation/appointments/appointment_payment_page.dart b/lib/presentation/appointments/appointment_payment_page.dart index 0d864b64..57b2c71d 100644 --- a/lib/presentation/appointments/appointment_payment_page.dart +++ b/lib/presentation/appointments/appointment_payment_page.dart @@ -69,12 +69,18 @@ class _AppointmentPaymentPageState extends State { widget.patientAppointmentHistoryResponseModel.clinicID, widget.patientAppointmentHistoryResponseModel.appointmentNo.toString(), widget.patientAppointmentHistoryResponseModel.isLiveCareAppointment ?? false, onSuccess: (val) { myAppointmentsViewModel.getTamaraInstallmentsDetails().then((val) { - if (myAppointmentsViewModel.getTamaraInstallmentsDetailsResponseModel != null) { + // if (myAppointmentsViewModel.getTamaraInstallmentsDetailsResponseModel != null && myAppointmentsViewModel.patientAppointmentShareResponseModel != null) { + if (myAppointmentsViewModel.getTamaraInstallmentsDetailsResponseModel != null && + myAppointmentsViewModel.patientAppointmentShareResponseModel?.patientShareWithTax != null && + myAppointmentsViewModel.getTamaraInstallmentsDetailsResponseModel?.minLimit?.amount != null && + myAppointmentsViewModel.getTamaraInstallmentsDetailsResponseModel?.maxLimit?.amount != null) { if (myAppointmentsViewModel.patientAppointmentShareResponseModel!.patientShareWithTax! >= myAppointmentsViewModel.getTamaraInstallmentsDetailsResponseModel!.minLimit!.amount! && myAppointmentsViewModel.patientAppointmentShareResponseModel!.patientShareWithTax! <= myAppointmentsViewModel.getTamaraInstallmentsDetailsResponseModel!.maxLimit!.amount!) { - setState(() { - isShowTamara = true; - }); + if (mounted) { + setState(() { + isShowTamara = true; + }); + } } } }); diff --git a/lib/presentation/appointments/my_appointments_page.dart b/lib/presentation/appointments/my_appointments_page.dart index 5606c935..9bd9b61d 100644 --- a/lib/presentation/appointments/my_appointments_page.dart +++ b/lib/presentation/appointments/my_appointments_page.dart @@ -48,7 +48,7 @@ class _MyAppointmentsPageState extends State { myAppointmentsViewModel.getPatientAppointments(true, false, isForTimeLine: false); } // Load full arrived appointments if not already loaded - myAppointmentsViewModel.loadFullArrivedAppointmentsIfNeeded(); + // myAppointmentsViewModel.loadFullArrivedAppointmentsIfNeeded(); }); super.initState(); } @@ -71,9 +71,9 @@ class _MyAppointmentsPageState extends State { activeTextColor: Color(0xffED1C2B), activeBackgroundColor: Color(0xffED1C2B).withValues(alpha: .1), tabs: [ - CustomTabBarModel(null, LocaleKeys.allAppt.tr(context: context)), + // CustomTabBarModel(null, LocaleKeys.allAppt.tr(context: context)), CustomTabBarModel(null, LocaleKeys.upcoming.tr(context: context)), - CustomTabBarModel(null, LocaleKeys.completed.tr(context: context)), + CustomTabBarModel(null, LocaleKeys.arrived.tr(context: context)), ], onTabChange: (index) { setState(() { @@ -82,6 +82,10 @@ class _MyAppointmentsPageState extends State { myAppointmentsViewModel.onTabChange(index); myAppointmentsViewModel.updateListWRTTab(index); context.read().flush(); + + if(index == 1) { + myAppointmentsViewModel.loadFullArrivedAppointmentsIfNeeded(); + } }, ).paddingSymmetrical(24.h, 0.h), // Consumer(builder: (context, myAppointmentsVM, child) { @@ -152,7 +156,7 @@ class _MyAppointmentsPageState extends State { ? myAppointmentsVM.patientAppointmentsViewList.length : 1, itemBuilder: (context, index) { - final isExpanded = myAppointmentsVM.selectedTabIndex == 1 ? true : expandedIndex == index; + final isExpanded = myAppointmentsVM.selectedTabIndex == 0 ? true : expandedIndex == index; return myAppointmentsVM.isMyAppointmentsLoading ? Container( decoration: RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, borderRadius: 24.h, hasShadow: true), diff --git a/lib/presentation/book_appointment/select_clinic_page.dart b/lib/presentation/book_appointment/select_clinic_page.dart index e0a810ed..bf4b5d58 100644 --- a/lib/presentation/book_appointment/select_clinic_page.dart +++ b/lib/presentation/book_appointment/select_clinic_page.dart @@ -1021,6 +1021,7 @@ class _SelectClinicPageState extends State { void onClinicSelected(GetClinicsListResponseModel clinic) { bookAppointmentsViewModel.setSelectedClinic(clinic); bookAppointmentsViewModel.setIsDoctorsListLoading(true); + searchEditingController.text = ""; if (clinic.isLiveCareClinicAndOnline ?? false) { Navigator.of(context).push( CustomPageRoute( diff --git a/lib/presentation/book_appointment/select_doctor_page.dart b/lib/presentation/book_appointment/select_doctor_page.dart index 8813da07..cad4fe0e 100644 --- a/lib/presentation/book_appointment/select_doctor_page.dart +++ b/lib/presentation/book_appointment/select_doctor_page.dart @@ -48,7 +48,7 @@ class _SelectDoctorPageState extends State { Clarity.setCurrentScreenName('Select Doctor Page'); _scrollController = ScrollController(); scheduleMicrotask(() { - bookAppointmentsViewModel.setIsNearestAppointmentSelected(true); + bookAppointmentsViewModel.setIsNearestAppointmentSelected(false); if (bookAppointmentsViewModel.isLiveCareSchedule) { bookAppointmentsViewModel.getLiveCareDoctorsList(); } else { @@ -57,8 +57,7 @@ class _SelectDoctorPageState extends State { } else if (bookAppointmentsViewModel.isGetDocForHealthCal) { bookAppointmentsViewModel.getDoctorsListByHealthCal(); } else { - bookAppointmentsViewModel.setIsNearestAppointmentSelected(true); - bookAppointmentsViewModel.getDoctorsList(isNearest: true); + bookAppointmentsViewModel.getDoctorsList(isNearest: false); } } }); diff --git a/lib/presentation/book_appointment/widgets/doctor_card.dart b/lib/presentation/book_appointment/widgets/doctor_card.dart index 180edae0..bb5a599d 100644 --- a/lib/presentation/book_appointment/widgets/doctor_card.dart +++ b/lib/presentation/book_appointment/widgets/doctor_card.dart @@ -144,8 +144,9 @@ class DoctorCard extends StatelessWidget { spacing: 3.h, runSpacing: 4.h, children: [ - bookAppointmentsViewModel.isNearestAppointmentSelected - ? doctorsListResponseModel.nearestFreeSlot != null + // bookAppointmentsViewModel.isNearestAppointmentSelected + // ? + doctorsListResponseModel.nearestFreeSlot != null ? AppCustomChipWidget( labelText: (isLoading ? "Cardiologist" : DateUtil.getDateStringForNearestSlot(doctorsListResponseModel.nearestFreeSlot)), // richText: (isLoading ? "Cardiologist" : DateUtil.getDateStringForNearestSlot(doctorsListResponseModel.nearestFreeSlot)) @@ -155,7 +156,8 @@ class DoctorCard extends StatelessWidget { textColor: AppColors.successColor, ).toShimmer2(isShow: isLoading) : SizedBox.shrink() - : SizedBox.shrink(), + // : SizedBox.shrink() + , AppCustomChipWidget( labelText: "${isLoading ? "Cardiologist" : doctorsListResponseModel.clinicName}", ).toShimmer2(isShow: isLoading), diff --git a/lib/presentation/profile_settings/widgets/preferred_language_widget.dart b/lib/presentation/profile_settings/widgets/preferred_language_widget.dart index d0f85090..aa0d8c09 100644 --- a/lib/presentation/profile_settings/widgets/preferred_language_widget.dart +++ b/lib/presentation/profile_settings/widgets/preferred_language_widget.dart @@ -74,7 +74,7 @@ class _PreferredLanguageWidgetState extends State { callBackFunc: () async { Navigator.of(GetIt.instance().navigatorKey.currentContext!).pop(); profileSettingsViewModel.getProfileSettings(); - }, isFullScreen: false, isAutoDismiss: true); + }, isFullScreen: false, isAutoDismiss: true, isCloseButtonVisible: false); }, onError: (error) { LoaderBottomSheet.hideLoader(); diff --git a/lib/presentation/profile_settings/widgets/update_email_widget.dart b/lib/presentation/profile_settings/widgets/update_email_widget.dart index 55f848a6..73b50849 100644 --- a/lib/presentation/profile_settings/widgets/update_email_widget.dart +++ b/lib/presentation/profile_settings/widgets/update_email_widget.dart @@ -134,7 +134,7 @@ class _UpdateEmailDialogState extends State { callBackFunc: () async { Navigator.of(getIt().navigatorKey.currentContext!).pop(); profileSettingsViewModel!.getProfileSettings(); - }, isFullScreen: false, isAutoDismiss: true); + }, isFullScreen: false, isAutoDismiss: true, isCloseButtonVisible: false); }, onError: (error) { LoaderBottomSheet.hideLoader(); diff --git a/lib/widgets/common_bottom_sheet.dart b/lib/widgets/common_bottom_sheet.dart index c86bc516..8d07a4ce 100644 --- a/lib/widgets/common_bottom_sheet.dart +++ b/lib/widgets/common_bottom_sheet.dart @@ -257,8 +257,7 @@ void showCommonBottomSheetWithoutHeight( duration: Duration(milliseconds: 500), reverseDuration: Duration(milliseconds: 300), ), - constraints: BoxConstraints(maxWidth: MediaQuery.of(context).size.width //MediaQuery.of(context).size.width, // Full width - ), + constraints: BoxConstraints(maxWidth: MediaQuery.of(context).size.width), context: context, isScrollControlled: true, showDragHandle: false,