|
|
|
|
import 'package:easy_localization/easy_localization.dart';
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:get_it/get_it.dart';
|
|
|
|
|
import 'package:hmg_patient_app_new/core/app_assets.dart';
|
|
|
|
|
import 'package:hmg_patient_app_new/core/app_export.dart';
|
|
|
|
|
import 'package:hmg_patient_app_new/core/enums.dart';
|
|
|
|
|
import 'package:hmg_patient_app_new/core/utils/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/blood_donation/blood_donation_view_model.dart';
|
|
|
|
|
import 'package:hmg_patient_app_new/features/habib_wallet/habib_wallet_view_model.dart';
|
|
|
|
|
import 'package:hmg_patient_app_new/features/hmg_services/models/ui_models/hmg_services_component_model.dart';
|
|
|
|
|
import 'package:hmg_patient_app_new/features/medical_file/medical_file_view_model.dart';
|
|
|
|
|
import 'package:hmg_patient_app_new/generated/locale_keys.g.dart';
|
|
|
|
|
import 'package:hmg_patient_app_new/presentation/blood_donation/blood_donation_page.dart';
|
|
|
|
|
import 'package:hmg_patient_app_new/presentation/contact_us/contact_us.dart';
|
|
|
|
|
import 'package:hmg_patient_app_new/presentation/habib_wallet/habib_wallet_page.dart';
|
|
|
|
|
import 'package:hmg_patient_app_new/presentation/habib_wallet/recharge_wallet_page.dart';
|
|
|
|
|
import 'package:hmg_patient_app_new/presentation/hmg_services/services_view.dart';
|
|
|
|
|
import 'package:hmg_patient_app_new/presentation/medical_file/medical_file_page.dart';
|
|
|
|
|
import 'package:hmg_patient_app_new/services/dialog_service.dart';
|
|
|
|
|
import 'package:hmg_patient_app_new/services/navigation_service.dart';
|
|
|
|
|
import 'package:hmg_patient_app_new/theme/colors.dart';
|
|
|
|
|
import 'package:hmg_patient_app_new/widgets/appbar/collapsing_list_view.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/loader/bottomsheet_loader.dart';
|
|
|
|
|
import 'package:hmg_patient_app_new/widgets/routes/custom_page_route.dart';
|
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
|
|
|
|
|
|
import '../../core/dependencies.dart' show getIt;
|
|
|
|
|
|
|
|
|
|
class ServicesPage extends StatelessWidget {
|
|
|
|
|
ServicesPage({super.key});
|
|
|
|
|
|
|
|
|
|
late BloodDonationViewModel bloodDonationViewModel;
|
|
|
|
|
late MedicalFileViewModel medicalFileViewModel;
|
|
|
|
|
|
|
|
|
|
late final List<HmgServicesComponentModel> hmgServices = [
|
|
|
|
|
HmgServicesComponentModel(
|
|
|
|
|
11,
|
|
|
|
|
"Emergency Services".needTranslation,
|
|
|
|
|
"".needTranslation,
|
|
|
|
|
AppAssets.emergency_services_icon,
|
|
|
|
|
bgColor: AppColors.primaryRedColor,
|
|
|
|
|
true,
|
|
|
|
|
route: AppRoutes.eReferralPage,
|
|
|
|
|
),
|
|
|
|
|
HmgServicesComponentModel(
|
|
|
|
|
11,
|
|
|
|
|
"Book\nAppointment".needTranslation,
|
|
|
|
|
"".needTranslation,
|
|
|
|
|
AppAssets.appointment_calendar_icon,
|
|
|
|
|
bgColor: AppColors.bookAppointment,
|
|
|
|
|
true,
|
|
|
|
|
route: AppRoutes.eReferralPage,
|
|
|
|
|
),
|
|
|
|
|
HmgServicesComponentModel(
|
|
|
|
|
5,
|
|
|
|
|
"Complete Checkup".needTranslation,
|
|
|
|
|
"".needTranslation,
|
|
|
|
|
AppAssets.comprehensiveCheckup,
|
|
|
|
|
bgColor: AppColors.bgGreenColor,
|
|
|
|
|
true,
|
|
|
|
|
route: AppRoutes.comprehensiveCheckupPage,
|
|
|
|
|
),
|
|
|
|
|
HmgServicesComponentModel(
|
|
|
|
|
11,
|
|
|
|
|
"E-Referral Services".needTranslation,
|
|
|
|
|
"".needTranslation,
|
|
|
|
|
AppAssets.eReferral,
|
|
|
|
|
bgColor: AppColors.eReferralCardColor,
|
|
|
|
|
true,
|
|
|
|
|
route: AppRoutes.eReferralPage,
|
|
|
|
|
),
|
|
|
|
|
HmgServicesComponentModel(
|
|
|
|
|
3,
|
|
|
|
|
"Blood Donation".needTranslation,
|
|
|
|
|
"".needTranslation,
|
|
|
|
|
AppAssets.blood_donation_icon,
|
|
|
|
|
bgColor: AppColors.bloodDonationCardColor,
|
|
|
|
|
true,
|
|
|
|
|
route: null, onTap: () async {
|
|
|
|
|
LoaderBottomSheet.showLoader(loadingText: "Fetching Data...");
|
|
|
|
|
await bloodDonationViewModel.getRegionSelectedClinics(onSuccess: (val) async {
|
|
|
|
|
await bloodDonationViewModel.getPatientBloodGroupDetails(onSuccess: (val) {
|
|
|
|
|
LoaderBottomSheet.hideLoader();
|
|
|
|
|
Navigator.of(GetIt.instance<NavigationService>().navigatorKey.currentContext!).push(
|
|
|
|
|
CustomPageRoute(
|
|
|
|
|
page: BloodDonationPage(),
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
}, onError: (err) {
|
|
|
|
|
LoaderBottomSheet.hideLoader();
|
|
|
|
|
});
|
|
|
|
|
}),
|
|
|
|
|
HmgServicesComponentModel(
|
|
|
|
|
3,
|
|
|
|
|
"Home Health Care".needTranslation,
|
|
|
|
|
"".needTranslation,
|
|
|
|
|
AppAssets.homeBottom,
|
|
|
|
|
bgColor: AppColors.primaryRedColor,
|
|
|
|
|
true,
|
|
|
|
|
route: AppRoutes.homeHealthCarePage,
|
|
|
|
|
),
|
|
|
|
|
// HmgServicesComponentModel(
|
|
|
|
|
// 11,
|
|
|
|
|
// "Virtual Tour".needTranslation,
|
|
|
|
|
// "".needTranslation,
|
|
|
|
|
// AppAssets.my_address,
|
|
|
|
|
// bgColor: AppColors.quickLoginColor,
|
|
|
|
|
// true,
|
|
|
|
|
// route: null,
|
|
|
|
|
// onTap:(){
|
|
|
|
|
// Utils.openWebView(
|
|
|
|
|
// url: 'https://hmgwebservices.com/vt_mobile/html/index.html',
|
|
|
|
|
// );
|
|
|
|
|
// },
|
|
|
|
|
// )
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
late final List<HmgServicesComponentModel> hmgHealthToolServices = [
|
|
|
|
|
HmgServicesComponentModel(
|
|
|
|
|
11,
|
|
|
|
|
"Daily Water Monitor".needTranslation,
|
|
|
|
|
"".needTranslation,
|
|
|
|
|
AppAssets.daily_water_monitor_icon,
|
|
|
|
|
bgColor: AppColors.whiteColor,
|
|
|
|
|
true,
|
|
|
|
|
route: AppRoutes.eReferralPage,
|
|
|
|
|
),
|
|
|
|
|
HmgServicesComponentModel(
|
|
|
|
|
11,
|
|
|
|
|
"Health\nCalculators".needTranslation,
|
|
|
|
|
"".needTranslation,
|
|
|
|
|
AppAssets.health_calculators_services_icon,
|
|
|
|
|
bgColor: AppColors.whiteColor,
|
|
|
|
|
true,
|
|
|
|
|
route: AppRoutes.healthCalculatorsPage,
|
|
|
|
|
),
|
|
|
|
|
HmgServicesComponentModel(
|
|
|
|
|
5,
|
|
|
|
|
"Health\nConverters".needTranslation,
|
|
|
|
|
"".needTranslation,
|
|
|
|
|
AppAssets.health_converters_icon,
|
|
|
|
|
bgColor: AppColors.whiteColor,
|
|
|
|
|
true,
|
|
|
|
|
route: AppRoutes.comprehensiveCheckupPage,
|
|
|
|
|
),
|
|
|
|
|
HmgServicesComponentModel(
|
|
|
|
|
11,
|
|
|
|
|
"Smart\nWatches".needTranslation,
|
|
|
|
|
"".needTranslation,
|
|
|
|
|
AppAssets.smartwatch_icon,
|
|
|
|
|
bgColor: AppColors.whiteColor,
|
|
|
|
|
true,
|
|
|
|
|
// route: AppRoutes.smartWatches,
|
|
|
|
|
route: AppRoutes.huaweiHealthExample,
|
|
|
|
|
),
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
|
bloodDonationViewModel = Provider.of<BloodDonationViewModel>(context);
|
|
|
|
|
medicalFileViewModel = Provider.of<MedicalFileViewModel>(context);
|
|
|
|
|
return Scaffold(
|
|
|
|
|
backgroundColor: AppColors.bgScaffoldColor,
|
|
|
|
|
body: CollapsingListView(
|
|
|
|
|
title: "Explore Services".needTranslation,
|
|
|
|
|
isLeading: false,
|
|
|
|
|
child: Padding(
|
|
|
|
|
padding: EdgeInsets.symmetric(horizontal: 24.h),
|
|
|
|
|
child: Column(
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
SizedBox(height: 16.h),
|
|
|
|
|
"Medical & Care Services".needTranslation.toText18(isBold: true),
|
|
|
|
|
SizedBox(height: 16.h),
|
|
|
|
|
GridView.builder(
|
|
|
|
|
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
|
|
|
|
|
crossAxisCount: 4, // 4 icons per row
|
|
|
|
|
crossAxisSpacing: 12.w,
|
|
|
|
|
mainAxisSpacing: 18.h,
|
|
|
|
|
childAspectRatio: 0.8,
|
|
|
|
|
),
|
|
|
|
|
physics: NeverScrollableScrollPhysics(),
|
|
|
|
|
shrinkWrap: true,
|
|
|
|
|
itemCount: hmgServices.length,
|
|
|
|
|
padding: EdgeInsets.zero,
|
|
|
|
|
itemBuilder: (BuildContext context, int index) {
|
|
|
|
|
return ServiceGridViewItem(hmgServices[index], index, false, isHealthToolIcon: false);
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
SizedBox(height: 24.h),
|
|
|
|
|
"Personal Services".needTranslation.toText18(isBold: true),
|
|
|
|
|
SizedBox(height: 16.h),
|
|
|
|
|
Row(
|
|
|
|
|
children: [
|
|
|
|
|
Expanded(
|
|
|
|
|
child: Container(
|
|
|
|
|
height: 170.h,
|
|
|
|
|
padding: EdgeInsets.all(16.w),
|
|
|
|
|
decoration: RoundedRectangleBorder().toSmoothCornerDecoration(
|
|
|
|
|
color: AppColors.whiteColor,
|
|
|
|
|
borderRadius: 20.r,
|
|
|
|
|
hasShadow: false,
|
|
|
|
|
),
|
|
|
|
|
child: Column(
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
Row(
|
|
|
|
|
spacing: 8.w,
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
|
|
children: [
|
|
|
|
|
Utils.buildSvgWithAssets(icon: AppAssets.wallet, width: 30.w, height: 30.h),
|
|
|
|
|
"Habib Wallet".needTranslation.toText14(weight: FontWeight.w600, maxlines: 2).expanded,
|
|
|
|
|
Utils.buildSvgWithAssets(icon: AppAssets.arrow_forward),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
Spacer(),
|
|
|
|
|
Consumer<HabibWalletViewModel>(builder: (context, habibWalletVM, child) {
|
|
|
|
|
return Utils.getPaymentAmountWithSymbol2(habibWalletVM.habibWalletAmount, isExpanded: false)
|
|
|
|
|
.toShimmer2(isShow: habibWalletVM.isWalletAmountLoading, radius: 12.r, width: 80.w, height: 24.h);
|
|
|
|
|
}),
|
|
|
|
|
Spacer(),
|
|
|
|
|
CustomButton(
|
|
|
|
|
height: 40.h,
|
|
|
|
|
icon: AppAssets.recharge_icon,
|
|
|
|
|
iconSize: 16.w,
|
|
|
|
|
iconColor: AppColors.infoColor,
|
|
|
|
|
textColor: AppColors.infoColor,
|
|
|
|
|
text: "Recharge".needTranslation,
|
|
|
|
|
borderWidth: 0.w,
|
|
|
|
|
fontWeight: FontWeight.w500,
|
|
|
|
|
borderColor: Colors.transparent,
|
|
|
|
|
backgroundColor: Color(0xff45A2F8).withValues(alpha: 0.08),
|
|
|
|
|
padding: EdgeInsets.all(8.w),
|
|
|
|
|
fontSize: 12.f,
|
|
|
|
|
onPressed: () {
|
|
|
|
|
Navigator.of(context).push(CustomPageRoute(page: RechargeWalletPage()));
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
).onPress(() {
|
|
|
|
|
Navigator.of(context).push(CustomPageRoute(page: HabibWalletPage()));
|
|
|
|
|
}),
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
SizedBox(width: 16.w),
|
|
|
|
|
Expanded(
|
|
|
|
|
child: Container(
|
|
|
|
|
height: 170.h,
|
|
|
|
|
padding: EdgeInsets.all(16.w),
|
|
|
|
|
decoration: RoundedRectangleBorder().toSmoothCornerDecoration(
|
|
|
|
|
color: AppColors.whiteColor,
|
|
|
|
|
borderRadius: 20.r,
|
|
|
|
|
hasShadow: false,
|
|
|
|
|
),
|
|
|
|
|
child: Column(
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
Row(
|
|
|
|
|
spacing: 8.w,
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
|
|
children: [
|
|
|
|
|
Utils.buildSvgWithAssets(icon: AppAssets.services_medical_file_icon, width: 30.w, height: 30.h),
|
|
|
|
|
"Medical Files".needTranslation.toText14(weight: FontWeight.w600, maxlines: 2).expanded,
|
|
|
|
|
Utils.buildSvgWithAssets(icon: AppAssets.arrow_forward),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
Spacer(),
|
|
|
|
|
Wrap(
|
|
|
|
|
spacing: -8.h,
|
|
|
|
|
// runSpacing: 0.h,
|
|
|
|
|
children: [
|
|
|
|
|
Utils.buildImgWithAssets(
|
|
|
|
|
icon: AppAssets.babyGirlImg,
|
|
|
|
|
height: 28.h,
|
|
|
|
|
width: 28.w,
|
|
|
|
|
border: 1,
|
|
|
|
|
fit: BoxFit.contain,
|
|
|
|
|
borderRadius: 50.r,
|
|
|
|
|
),
|
|
|
|
|
Utils.buildImgWithAssets(
|
|
|
|
|
icon: AppAssets.femaleImg,
|
|
|
|
|
height: 28.h,
|
|
|
|
|
width: 28.w,
|
|
|
|
|
border: 1,
|
|
|
|
|
borderRadius: 50.r,
|
|
|
|
|
fit: BoxFit.contain,
|
|
|
|
|
),
|
|
|
|
|
Utils.buildImgWithAssets(
|
|
|
|
|
icon: AppAssets.maleImg,
|
|
|
|
|
height: 28.h,
|
|
|
|
|
width: 28.w,
|
|
|
|
|
border: 1,
|
|
|
|
|
borderRadius: 50.r,
|
|
|
|
|
fit: BoxFit.contain,
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
Spacer(),
|
|
|
|
|
CustomButton(
|
|
|
|
|
height: 40.h,
|
|
|
|
|
icon: AppAssets.add_icon,
|
|
|
|
|
iconSize: 16.w,
|
|
|
|
|
iconColor: AppColors.primaryRedColor,
|
|
|
|
|
textColor: AppColors.primaryRedColor,
|
|
|
|
|
text: "Add Member".needTranslation,
|
|
|
|
|
borderWidth: 0.w,
|
|
|
|
|
fontWeight: FontWeight.w500,
|
|
|
|
|
borderColor: Colors.transparent,
|
|
|
|
|
backgroundColor: AppColors.primaryRedColor.withValues(alpha: 0.08),
|
|
|
|
|
padding: EdgeInsets.all(8.w),
|
|
|
|
|
fontSize: 12.f,
|
|
|
|
|
onPressed: () {
|
|
|
|
|
DialogService dialogService = getIt.get<DialogService>();
|
|
|
|
|
medicalFileViewModel.clearAuthValues();
|
|
|
|
|
dialogService.showAddFamilyFileSheet(
|
|
|
|
|
label: "Add Family Member".needTranslation,
|
|
|
|
|
message: "Please fill the below field to add a new family member to your profile".needTranslation,
|
|
|
|
|
onVerificationPress: () {
|
|
|
|
|
medicalFileViewModel.addFamilyFile(otpTypeEnum: OTPTypeEnum.sms);
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
).onPress(() {
|
|
|
|
|
Navigator.of(context).push(
|
|
|
|
|
CustomPageRoute(
|
|
|
|
|
page: MedicalFilePage(),
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
}),
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
SizedBox(height: 24.h),
|
|
|
|
|
"Health Tools".needTranslation.toText18(isBold: true),
|
|
|
|
|
SizedBox(height: 16.h),
|
|
|
|
|
GridView.builder(
|
|
|
|
|
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
|
|
|
|
|
crossAxisCount: 4, // 4 icons per row
|
|
|
|
|
crossAxisSpacing: 12.w,
|
|
|
|
|
mainAxisSpacing: 18.h,
|
|
|
|
|
childAspectRatio: 0.8,
|
|
|
|
|
),
|
|
|
|
|
physics: NeverScrollableScrollPhysics(),
|
|
|
|
|
shrinkWrap: true,
|
|
|
|
|
itemCount: hmgHealthToolServices.length,
|
|
|
|
|
padding: EdgeInsets.zero,
|
|
|
|
|
itemBuilder: (BuildContext context, int index) {
|
|
|
|
|
return ServiceGridViewItem(
|
|
|
|
|
hmgHealthToolServices[index],
|
|
|
|
|
index,
|
|
|
|
|
false,
|
|
|
|
|
isHealthToolIcon: true,
|
|
|
|
|
);
|
|
|
|
|
},
|
|
|
|
|
),
|
|
|
|
|
SizedBox(height: 24.h),
|
|
|
|
|
"Support Services".needTranslation.toText18(isBold: true),
|
|
|
|
|
SizedBox(height: 16.h),
|
|
|
|
|
Column(
|
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
children: [
|
|
|
|
|
Row(
|
|
|
|
|
children: [
|
|
|
|
|
Expanded(
|
|
|
|
|
child: Container(
|
|
|
|
|
decoration: RoundedRectangleBorder().toSmoothCornerDecoration(
|
|
|
|
|
color: AppColors.whiteColor,
|
|
|
|
|
borderRadius: 12.h,
|
|
|
|
|
hasShadow: false,
|
|
|
|
|
),
|
|
|
|
|
child: Padding(
|
|
|
|
|
padding: EdgeInsets.all(16.h),
|
|
|
|
|
child: Row(
|
|
|
|
|
children: [
|
|
|
|
|
Utils.buildSvgWithAssets(
|
|
|
|
|
icon: AppAssets.virtual_tour_icon,
|
|
|
|
|
width: 32.w,
|
|
|
|
|
height: 32.h,
|
|
|
|
|
fit: BoxFit.contain,
|
|
|
|
|
),
|
|
|
|
|
SizedBox(width: 8.w),
|
|
|
|
|
"Virtual Tour".needTranslation.toText12(fontWeight: FontWeight.w500)
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
).onPress(() {
|
|
|
|
|
Utils.openWebView(
|
|
|
|
|
url: 'https://hmgwebservices.com/vt_mobile/html/index.html',
|
|
|
|
|
);
|
|
|
|
|
}),
|
|
|
|
|
),
|
|
|
|
|
SizedBox(width: 16.w),
|
|
|
|
|
Expanded(
|
|
|
|
|
child: Container(
|
|
|
|
|
decoration: RoundedRectangleBorder().toSmoothCornerDecoration(
|
|
|
|
|
color: AppColors.whiteColor,
|
|
|
|
|
borderRadius: 12.h,
|
|
|
|
|
hasShadow: false,
|
|
|
|
|
),
|
|
|
|
|
child: Padding(
|
|
|
|
|
padding: EdgeInsets.all(16.h),
|
|
|
|
|
child: Row(
|
|
|
|
|
children: [
|
|
|
|
|
Utils.buildSvgWithAssets(
|
|
|
|
|
icon: AppAssets.car_parking_icon,
|
|
|
|
|
width: 32.w,
|
|
|
|
|
height: 32.h,
|
|
|
|
|
fit: BoxFit.contain,
|
|
|
|
|
),
|
|
|
|
|
SizedBox(width: 8.w),
|
|
|
|
|
"Car Parking".needTranslation.toText12(fontWeight: FontWeight.w500)
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
SizedBox(height: 16.h),
|
|
|
|
|
Row(
|
|
|
|
|
children: [
|
|
|
|
|
Expanded(
|
|
|
|
|
child: Container(
|
|
|
|
|
decoration: RoundedRectangleBorder().toSmoothCornerDecoration(
|
|
|
|
|
color: AppColors.whiteColor,
|
|
|
|
|
borderRadius: 12.h,
|
|
|
|
|
hasShadow: false,
|
|
|
|
|
),
|
|
|
|
|
child: Padding(
|
|
|
|
|
padding: EdgeInsets.all(16.h),
|
|
|
|
|
child: Row(
|
|
|
|
|
children: [
|
|
|
|
|
Utils.buildSvgWithAssets(
|
|
|
|
|
icon: AppAssets.latest_news_icon,
|
|
|
|
|
width: 32.w,
|
|
|
|
|
height: 32.h,
|
|
|
|
|
fit: BoxFit.contain,
|
|
|
|
|
),
|
|
|
|
|
SizedBox(width: 8.w),
|
|
|
|
|
"Latest News".needTranslation.toText12(fontWeight: FontWeight.w500)
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
).onPress(() {
|
|
|
|
|
Utils.openWebView(
|
|
|
|
|
url: 'https://x.com/HMG',
|
|
|
|
|
);
|
|
|
|
|
}),
|
|
|
|
|
),
|
|
|
|
|
SizedBox(width: 16.w),
|
|
|
|
|
Expanded(
|
|
|
|
|
child: Container(
|
|
|
|
|
decoration: RoundedRectangleBorder().toSmoothCornerDecoration(
|
|
|
|
|
color: AppColors.whiteColor,
|
|
|
|
|
borderRadius: 12.h,
|
|
|
|
|
hasShadow: false,
|
|
|
|
|
),
|
|
|
|
|
child: Padding(
|
|
|
|
|
padding: EdgeInsets.all(16.h),
|
|
|
|
|
child: Row(
|
|
|
|
|
children: [
|
|
|
|
|
Utils.buildSvgWithAssets(
|
|
|
|
|
icon: AppAssets.hmg_contact_icon,
|
|
|
|
|
width: 32.w,
|
|
|
|
|
height: 32.h,
|
|
|
|
|
fit: BoxFit.contain,
|
|
|
|
|
),
|
|
|
|
|
SizedBox(width: 8.w),
|
|
|
|
|
"HMG Contact".needTranslation.toText12(fontWeight: FontWeight.w500)
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
).onPress(() {
|
|
|
|
|
showCommonBottomSheetWithoutHeight(
|
|
|
|
|
context,
|
|
|
|
|
title: LocaleKeys.contactUs.tr(),
|
|
|
|
|
child: ContactUs(),
|
|
|
|
|
callBackFunc: () {},
|
|
|
|
|
isFullScreen: false,
|
|
|
|
|
);
|
|
|
|
|
}),
|
|
|
|
|
)
|
|
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
SizedBox(height: 24.h),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|