From 333b813f907bfebd9eefb6aca09118093439e000 Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Thu, 4 Sep 2025 15:22:54 +0300 Subject: [PATCH] bottom sheet fixes --- .../insurance/insurance_home_page.dart | 13 ++- .../widgets/patient_insurance_card.dart | 5 ++ lib/presentation/lab/lab_orders_page.dart | 2 +- lib/widgets/common_bottom_sheet.dart | 79 ++++++++++--------- 4 files changed, 58 insertions(+), 41 deletions(-) diff --git a/lib/presentation/insurance/insurance_home_page.dart b/lib/presentation/insurance/insurance_home_page.dart index d348f8d..eea50c5 100644 --- a/lib/presentation/insurance/insurance_home_page.dart +++ b/lib/presentation/insurance/insurance_home_page.dart @@ -9,9 +9,11 @@ import 'package:hmg_patient_app_new/extensions/string_extensions.dart'; import 'package:hmg_patient_app_new/features/insurance/insurance_view_model.dart'; import 'package:hmg_patient_app_new/generated/locale_keys.g.dart'; import 'package:hmg_patient_app_new/presentation/insurance/widgets/patient_insurance_card.dart'; +import 'package:hmg_patient_app_new/presentation/lab/search_lab_report.dart'; import 'package:hmg_patient_app_new/theme/colors.dart'; import 'package:hmg_patient_app_new/extensions/widget_extensions.dart'; import 'package:hmg_patient_app_new/widgets/buttons/custom_button.dart'; +import 'package:hmg_patient_app_new/widgets/common_bottom_sheet.dart'; import 'package:hmg_patient_app_new/widgets/shimmer/movies_shimmer_widget.dart'; import 'package:provider/provider.dart'; @@ -56,7 +58,16 @@ class _InsuranceHomePageState extends State { iconColor: AppColors.primaryRedColor, iconSize: 21.h, text: LocaleKeys.history.tr(context: context), - onPressed: () {}, + onPressed: () { + showCommonBottomSheet( + context, + child: Container(), + callBackFunc: () {}, + title: "", + height: ResponsiveExtension.screenHeight * 0.5, + isCloseButtonVisible: false, + ); + }, backgroundColor: AppColors.primaryRedColor.withOpacity(0.1), borderColor: AppColors.primaryRedColor.withOpacity(0.0), textColor: AppColors.primaryRedColor, diff --git a/lib/presentation/insurance/widgets/patient_insurance_card.dart b/lib/presentation/insurance/widgets/patient_insurance_card.dart index 7726b94..2701233 100644 --- a/lib/presentation/insurance/widgets/patient_insurance_card.dart +++ b/lib/presentation/insurance/widgets/patient_insurance_card.dart @@ -5,10 +5,12 @@ import 'package:hmg_patient_app_new/core/utils/date_util.dart'; import 'package:hmg_patient_app_new/core/utils/size_utils.dart'; import 'package:hmg_patient_app_new/extensions/string_extensions.dart'; import 'package:hmg_patient_app_new/extensions/widget_extensions.dart'; +import 'package:hmg_patient_app_new/features/insurance/insurance_view_model.dart'; import 'package:hmg_patient_app_new/features/insurance/models/resp_models/patient_insurance_details_response_model.dart'; import 'package:hmg_patient_app_new/generated/locale_keys.g.dart'; import 'package:hmg_patient_app_new/theme/colors.dart'; import 'package:hmg_patient_app_new/widgets/buttons/custom_button.dart'; +import 'package:provider/provider.dart'; class PatientInsuranceCard extends StatelessWidget { PatientInsuranceCard({super.key, required this.insuranceCardDetailsModel, required this.isInsuranceExpired}); @@ -16,8 +18,11 @@ class PatientInsuranceCard extends StatelessWidget { PatientInsuranceDetailsResponseModel insuranceCardDetailsModel; bool isInsuranceExpired = false; + late InsuranceViewModel insuranceViewModel; + @override Widget build(BuildContext context) { + insuranceViewModel = Provider.of(context); return Container( width: double.infinity, decoration: RoundedRectangleBorder().toSmoothCornerDecoration( diff --git a/lib/presentation/lab/lab_orders_page.dart b/lib/presentation/lab/lab_orders_page.dart index 97e2216..e829c93 100644 --- a/lib/presentation/lab/lab_orders_page.dart +++ b/lib/presentation/lab/lab_orders_page.dart @@ -65,7 +65,7 @@ class _LabOrdersPageState extends State { Utils.buildSvgWithAssets(icon: AppAssets.search_icon).onPress(() { if(model.isLabOrdersLoading){ return; - }else { + } else { labSuggestions = getLabSuggestions(model); showCommonBottomSheet(context, child: SearchLabResultsContent(), callBackFunc: () {}, diff --git a/lib/widgets/common_bottom_sheet.dart b/lib/widgets/common_bottom_sheet.dart index 3d72864..f3d7425 100644 --- a/lib/widgets/common_bottom_sheet.dart +++ b/lib/widgets/common_bottom_sheet.dart @@ -9,14 +9,13 @@ import 'package:hmg_patient_app_new/theme/colors.dart'; void showCommonBottomSheet(BuildContext context, {required Widget child, required VoidCallback callBackFunc, String? title, required double height, bool isCloseButtonVisible = true}) { showModalBottomSheet( context: context, - isScrollControlled: true, + isScrollControlled: false, + showDragHandle: false, backgroundColor: AppColors.scaffoldBgColor, builder: (BuildContext context) { return Container( height: height, - decoration: const BoxDecoration( - borderRadius: BorderRadius.vertical(top: Radius.circular(20)), - ), + decoration: RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.scaffoldBgColor, borderRadius: 24.h), child: ButtonSheetContent( title: title!, isCloseButtonVisible: isCloseButtonVisible, @@ -37,46 +36,48 @@ class ButtonSheetContent extends StatelessWidget { @override Widget build(BuildContext context) { - return Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - SizedBox(height: 20.h,), - Center( - child: Container( - margin: const EdgeInsets.only(top: 18, bottom: 12), - height: 4, - width: 40.h, - decoration: BoxDecoration( - color: Colors.grey[400], - borderRadius: BorderRadius.circular(2), - ), + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // SizedBox( + // height: 20.h, + // ), + Center( + child: Container( + margin: const EdgeInsets.only(top: 18, bottom: 12), + height: 4, + width: 40.h, + decoration: BoxDecoration( + color: Colors.grey[400], + borderRadius: BorderRadius.circular(2), ), ), + ), - // Close button - isCloseButtonVisible - ? Padding( - padding: EdgeInsets.symmetric(horizontal: 16), child: Utils.buildSvgWithAssets( icon: AppAssets.closeBottomNav, - width: 32, - height: 32).onPress((){ - Navigator.of(context).pop(); - }), - ) - : SizedBox(), + // Close button + isCloseButtonVisible + ? Padding( + padding: EdgeInsets.symmetric(horizontal: 16), + child: Utils.buildSvgWithAssets(icon: AppAssets.closeBottomNav, width: 32, height: 32).onPress(() { + Navigator.of(context).pop(); + }), + ) + : SizedBox(), - SizedBox(height: 20,), - Padding( - padding: EdgeInsets.symmetric(horizontal: 16), - child: Text( - title, - style: TextStyle(fontSize: 27.h, fontWeight: FontWeight.bold), - ), + SizedBox( + height: 20, + ), + Padding( + padding: EdgeInsets.symmetric(horizontal: 16), + child: Text( + title, + style: TextStyle(fontSize: 27.h, fontWeight: FontWeight.bold), ), - const SizedBox(height: 16), - - Expanded(child: child) - ], - ); + ), + const SizedBox(height: 16), + Expanded(child: child) + ], + ); } }