From c97a49224406f43f3584786e0b37739332b1267e Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Wed, 10 Dec 2025 15:00:47 +0300 Subject: [PATCH] Medical File page updates --- .../svg/ask_doctor_medical_file_icon.svg | 4 + assets/images/svg/blood_sugar_icon.svg | 5 + assets/images/svg/internet_pairing_icon.svg | 7 ++ assets/images/svg/weight_tracker_icon.svg | 4 + lib/core/app_assets.dart | 4 + .../medical_file/medical_file_page.dart | 100 ++++++++++++++++-- .../widgets/medical_file_card.dart | 2 +- 7 files changed, 117 insertions(+), 9 deletions(-) create mode 100644 assets/images/svg/ask_doctor_medical_file_icon.svg create mode 100644 assets/images/svg/blood_sugar_icon.svg create mode 100644 assets/images/svg/internet_pairing_icon.svg create mode 100644 assets/images/svg/weight_tracker_icon.svg diff --git a/assets/images/svg/ask_doctor_medical_file_icon.svg b/assets/images/svg/ask_doctor_medical_file_icon.svg new file mode 100644 index 0000000..11facfb --- /dev/null +++ b/assets/images/svg/ask_doctor_medical_file_icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/assets/images/svg/blood_sugar_icon.svg b/assets/images/svg/blood_sugar_icon.svg new file mode 100644 index 0000000..3c77019 --- /dev/null +++ b/assets/images/svg/blood_sugar_icon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/assets/images/svg/internet_pairing_icon.svg b/assets/images/svg/internet_pairing_icon.svg new file mode 100644 index 0000000..3e1ac63 --- /dev/null +++ b/assets/images/svg/internet_pairing_icon.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/assets/images/svg/weight_tracker_icon.svg b/assets/images/svg/weight_tracker_icon.svg new file mode 100644 index 0000000..5110575 --- /dev/null +++ b/assets/images/svg/weight_tracker_icon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/lib/core/app_assets.dart b/lib/core/app_assets.dart index 1c17024..9b6f4b1 100644 --- a/lib/core/app_assets.dart +++ b/lib/core/app_assets.dart @@ -188,6 +188,10 @@ class AppAssets { static const String latest_news_icon = '$svgBasePath/latest_news_icon.svg'; static const String hmg_contact_icon = '$svgBasePath/hmg_contact_icon.svg'; static const String services_medical_file_icon = '$svgBasePath/services_medical_file_icon.svg'; + static const String blood_sugar_icon = '$svgBasePath/blood_sugar_icon.svg'; + static const String weight_tracker_icon = '$svgBasePath/weight_tracker_icon.svg'; + static const String ask_doctor_medical_file_icon = '$svgBasePath/ask_doctor_medical_file_icon.svg'; + static const String internet_pairing_icon = '$svgBasePath/internet_pairing_icon.svg'; //bottom navigation// diff --git a/lib/presentation/medical_file/medical_file_page.dart b/lib/presentation/medical_file/medical_file_page.dart index 5cfbcb9..d735bd9 100644 --- a/lib/presentation/medical_file/medical_file_page.dart +++ b/lib/presentation/medical_file/medical_file_page.dart @@ -299,9 +299,8 @@ class _MedicalFilePageState extends State { title: "Tracker & Others".toText18(weight: FontWeight.w600), expandedBackgroundColor: Colors.transparent, children: [ - Text("Blood Report"), - SizedBox(height: 8), - Text("X-Ray Report"), + SizedBox(height: 10.h), + getSelectedTabData(3), ], ), ], @@ -443,7 +442,7 @@ class _MedicalFilePageState extends State { ? Container( padding: EdgeInsets.all(12.w), width: MediaQuery.of(context).size.width, - decoration: RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, borderRadius: 12.r, hasShadow: true), + decoration: RoundedRectangleBorder().toSmoothCornerDecoration(color: AppColors.whiteColor, borderRadius: 12.r, hasShadow: false), child: Column( children: [ Utils.buildSvgWithAssets(icon: AppAssets.home_calendar_icon, width: 32.h, height: 32.h), @@ -811,7 +810,7 @@ class _MedicalFilePageState extends State { GridView( gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 3, - crossAxisSpacing: 16.h, + crossAxisSpacing: 10.h, mainAxisSpacing: 16.w, mainAxisExtent: 115.h, ), @@ -928,7 +927,7 @@ class _MedicalFilePageState extends State { GridView( gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 3, - crossAxisSpacing: 16.h, + crossAxisSpacing: 10.h, mainAxisSpacing: 16.w, mainAxisExtent: 120.h, ), @@ -1015,7 +1014,7 @@ class _MedicalFilePageState extends State { GridView( gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 3, - crossAxisSpacing: 16.h, + crossAxisSpacing: 10.h, mainAxisSpacing: 16.w, mainAxisExtent: 110.h, ), @@ -1067,7 +1066,92 @@ class _MedicalFilePageState extends State { ], ); case 3: - return Container(); + // Trackers Tab Data + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + "Health Trackers".needTranslation.toText16(weight: FontWeight.w500, color: AppColors.textColor), + ], + ), + SizedBox(height: 16.h), + GridView( + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 3, + crossAxisSpacing: 10.h, + mainAxisSpacing: 16.w, + mainAxisExtent: 115.h, + ), + physics: NeverScrollableScrollPhysics(), + padding: EdgeInsets.zero, + shrinkWrap: true, + children: [ + MedicalFileCard( + label: "Blood Sugar".needTranslation, + textColor: AppColors.blackColor, + backgroundColor: AppColors.whiteColor, + svgIcon: AppAssets.blood_sugar_icon, + isLargeText: true, + iconSize: 36.w, + ).onPress(() {}), + MedicalFileCard( + label: "Blood Pressure".needTranslation, + textColor: AppColors.blackColor, + backgroundColor: AppColors.whiteColor, + svgIcon: AppAssets.lab_result_icon, + isLargeText: true, + iconSize: 36.w, + ).onPress(() {}), + MedicalFileCard( + label: "Weight Tracker".needTranslation, + textColor: AppColors.blackColor, + backgroundColor: AppColors.whiteColor, + svgIcon: AppAssets.weight_tracker_icon, + isLargeText: true, + iconSize: 36.w, + ).onPress(() {}), + ], + ).paddingSymmetrical(0.w, 0.0), + SizedBox(height: 16.h), + Row( + children: [ + "Others".needTranslation.toText16(weight: FontWeight.w500, color: AppColors.textColor), + ], + ), + SizedBox(height: 16.h), + GridView( + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 3, + crossAxisSpacing: 10.h, + mainAxisSpacing: 16.w, + mainAxisExtent: 115.h, + ), + physics: NeverScrollableScrollPhysics(), + padding: EdgeInsets.zero, + shrinkWrap: true, + children: [ + MedicalFileCard( + label: "Ask Your Doctor".needTranslation, + textColor: AppColors.blackColor, + backgroundColor: AppColors.whiteColor, + svgIcon: AppAssets.ask_doctor_medical_file_icon, + isLargeText: true, + iconSize: 36.w, + ).onPress(() {}), + MedicalFileCard( + label: "Internet Pairing".needTranslation, + textColor: AppColors.blackColor, + backgroundColor: AppColors.whiteColor, + svgIcon: AppAssets.internet_pairing_icon, + isLargeText: true, + iconSize: 36.w, + ).onPress(() {}), + ], + ).paddingSymmetrical(0.w, 0.0), + SizedBox(height: 24.h), + ], + ); default: return Container(); } diff --git a/lib/presentation/medical_file/widgets/medical_file_card.dart b/lib/presentation/medical_file/widgets/medical_file_card.dart index 6343e2a..77968c5 100644 --- a/lib/presentation/medical_file/widgets/medical_file_card.dart +++ b/lib/presentation/medical_file/widgets/medical_file_card.dart @@ -28,7 +28,7 @@ class MedicalFileCard extends StatelessWidget { return Container( decoration: RoundedRectangleBorder().toSmoothCornerDecoration( color: backgroundColor, - borderRadius: 12.r, + borderRadius: 20.r, hasShadow: false ), padding: EdgeInsets.all(12.w),