diff --git a/assets/images/svg/fb.svg b/assets/images/svg/fb.svg
new file mode 100644
index 00000000..972aac93
--- /dev/null
+++ b/assets/images/svg/fb.svg
@@ -0,0 +1,11 @@
+
diff --git a/assets/images/svg/linkedin.svg b/assets/images/svg/linkedin.svg
new file mode 100644
index 00000000..43d7ff39
--- /dev/null
+++ b/assets/images/svg/linkedin.svg
@@ -0,0 +1,6 @@
+
diff --git a/assets/images/svg/twitter.svg b/assets/images/svg/twitter.svg
new file mode 100644
index 00000000..9c5bfa6b
--- /dev/null
+++ b/assets/images/svg/twitter.svg
@@ -0,0 +1,3 @@
+
diff --git a/assets/images/svg/twitter2.svg b/assets/images/svg/twitter2.svg
new file mode 100644
index 00000000..e804498a
--- /dev/null
+++ b/assets/images/svg/twitter2.svg
@@ -0,0 +1,3 @@
+
diff --git a/assets/images/svg/youtube.svg b/assets/images/svg/youtube.svg
new file mode 100644
index 00000000..5e83e5a4
--- /dev/null
+++ b/assets/images/svg/youtube.svg
@@ -0,0 +1,4 @@
+
diff --git a/assets/langs/ar-SA.json b/assets/langs/ar-SA.json
index 0407bd0f..24a7286b 100644
--- a/assets/langs/ar-SA.json
+++ b/assets/langs/ar-SA.json
@@ -1803,5 +1803,10 @@
"networkErrorWhileFetching": "حدث خطأ أثناء تحميل البيانات. يرجى المحاولة مجدداً.",
"networkPleaseCheckInternet": "يرجى التحقق من اتصالك بالإنترنت والمحاولة مجدداً.",
"networkServerErrorNoMessage": "حدث خطأ في الخادم. يرجى المحاولة لاحقاً.",
- "startLiveChat": "بدء المحادثة المباشرة"
+ "startLiveChat": "بدء المحادثة المباشرة",
+ "followUsOn": "تابعنا على:",
+ "followUsOnX": "تابعنا على X",
+ "likeUsOnFB": "سجل إعجابك بنا على فيسبوك",
+ "watchUsOnYoutube": "شاهدنا على إنستغرام",
+ "connectOnLinkedin": "تواصل معنا على لينكد إن"
}
diff --git a/assets/langs/en-US.json b/assets/langs/en-US.json
index 92a5f20c..d970d44b 100644
--- a/assets/langs/en-US.json
+++ b/assets/langs/en-US.json
@@ -1793,7 +1793,12 @@
"networkErrorWhileFetching": "Something went wrong while loading data. Please try again.",
"networkPleaseCheckInternet": "Please check your internet connection and try again.",
"networkServerErrorNoMessage": "A server error occurred. Please try again later.",
- "startLiveChat": "Start Live Chat"
+ "startLiveChat": "Start Live Chat",
+ "followUsOn": "Follow us on:",
+ "followUsOnX": "Follow us on X",
+ "likeUsOnFB": "Like us on Facebook",
+ "watchUsOnYoutube": "Watch us on Instagram",
+ "connectOnLinkedin": "Connect on LinkedIn"
}
diff --git a/lib/core/app_assets.dart b/lib/core/app_assets.dart
index 215b2421..1b0013f1 100644
--- a/lib/core/app_assets.dart
+++ b/lib/core/app_assets.dart
@@ -21,6 +21,11 @@ class AppAssets {
static const String report = '$svgBasePath/report.svg';
static const String sucess = '$svgBasePath/sucess.svg';
static const String livechatMessage = '$svgBasePath/live_chat_message_icon.svg';
+ static const String fb = '$svgBasePath/fb.svg';
+ static const String linkedin = '$svgBasePath/linkedin.svg';
+ static const String youtube = '$svgBasePath/youtube.svg';
+ static const String x = '$svgBasePath/twitter.svg';
+ static const String x2 = '$svgBasePath/twitter2.svg';
// static const String globeOther = '$svgBasePath/globe_other.svg';
static const String cancel = '$svgBasePath/cancel.svg';
diff --git a/lib/generated/locale_keys.g.dart b/lib/generated/locale_keys.g.dart
index ecb4c9e6..b2d2eed1 100644
--- a/lib/generated/locale_keys.g.dart
+++ b/lib/generated/locale_keys.g.dart
@@ -1788,6 +1788,11 @@ abstract class LocaleKeys {
static const selectBloodDonationGender = 'selectBloodDonationGender';
static const selectBloodType = 'selectBloodType';
static const startLiveChat = 'startLiveChat';
+ static const followUsOn = 'followUsOn';
+ static const followUsOnX = 'followUsOnX';
+ static const likeUsOnFB = 'likeUsOnFB';
+ static const watchUsOnYoutube = 'watchUsOnYoutube';
+ static const connectOnLinkedin = 'connectOnLinkedin';
static const networkErrorTitle = 'networkErrorTitle';
static const networkErrorMessage = 'networkErrorMessage';
static const networkConnectionReset = 'networkConnectionReset';
diff --git a/lib/presentation/hmg_services/services_page.dart b/lib/presentation/hmg_services/services_page.dart
index af6672ea..827ff8c7 100644
--- a/lib/presentation/hmg_services/services_page.dart
+++ b/lib/presentation/hmg_services/services_page.dart
@@ -45,6 +45,7 @@ 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 'package:url_launcher/url_launcher.dart';
import '../../core/dependencies.dart' show getIt;
import '../../features/qr_parking/qr_parking_view_model.dart';
@@ -375,6 +376,52 @@ class _ServicesPageState extends State {
),
];
+ late final List socialLinkedinMessage = [
+ HmgServicesComponentModel(
+ 101,
+ LocaleKeys.followUsOnX.tr(),
+ "",
+ AppAssets.x,
+ bgColor: AppColors.whiteColor,
+ true,
+ route: null,
+ onTap: () async {
+ launchUrl(Uri.parse("https://twitter.com/HMG"));
+ },
+ ),
+ HmgServicesComponentModel(
+ 102,
+ LocaleKeys.likeUsOnFB.tr(),
+ "",
+ AppAssets.fb,
+ bgColor: AppColors.whiteColor,
+ true,
+ route: null, // Set to null since we handle navigation in onTap
+ onTap: () async {
+ launchUrl(Uri.parse("https://www.facebook.com/DrSulaimanAlHabib?ref=tn_tnmn"));
+ },
+ ),
+ HmgServicesComponentModel(
+ 103,
+ LocaleKeys.watchUsOnYoutube.tr(),
+ "",
+ AppAssets.youtube,
+ bgColor: AppColors.whiteColor,
+ true,
+ onTap:()=> launchUrl(Uri.parse("https://www.youtube.com/c/DrsulaimanAlhabibHospitals"))
+ ),
+ HmgServicesComponentModel(
+ 104,
+ LocaleKeys.connectOnLinkedin.tr(),
+ "",
+ AppAssets.linkedin,
+ bgColor: AppColors.whiteColor,
+ true,
+ onTap:()=> launchUrl(Uri.parse("https://www.linkedin.com/company/drsulaiman-alhabib-medical-group")),
+ ),
+
+ ];
+
@override
void initState() {
// TODO: implement initState
@@ -840,6 +887,27 @@ class _ServicesPageState extends State {
)
],
).paddingSymmetrical(24.w, 0),
+ SizedBox(height: 16.h),
+ GridView.builder(
+ gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
+ crossAxisCount: (isFoldable || isTablet) ? 6 : 4, // 4 icons per row
+ crossAxisSpacing: 21.w,
+ mainAxisSpacing: 18.h,
+ childAspectRatio: 80.w / 94.h,
+ ),
+ physics: NeverScrollableScrollPhysics(),
+ shrinkWrap: true,
+ itemCount: socialLinkedinMessage.length,
+ padding: EdgeInsets.zero,
+ itemBuilder: (BuildContext context, int index) {
+ return ServiceGridViewItem(
+ socialLinkedinMessage[index],
+ index,
+ false,
+ isHealthToolIcon: true,
+ );
+ },
+ ).paddingSymmetrical(24.w, 0),
SizedBox(height: 24.h),
],
),
diff --git a/lib/presentation/profile_settings/profile_settings.dart b/lib/presentation/profile_settings/profile_settings.dart
index be7ddb54..16c2a383 100644
--- a/lib/presentation/profile_settings/profile_settings.dart
+++ b/lib/presentation/profile_settings/profile_settings.dart
@@ -346,6 +346,8 @@ class ProfileSettingsState extends State {
url: 'https://hmg.com/en/Pages/Terms.aspx',
);
}, isExternalLink: true),
+ 1.divider,
+ socialMedia(AppAssets.privacy_terms, LocaleKeys.followUsOn.tr(context: context)),
],
),
),
@@ -420,6 +422,30 @@ class ProfileSettingsState extends State {
).paddingOnly(left: 16.w, right: 16.w).onPress(onPress),
);
}
+
+ Widget socialMedia(String icon, String label,
+ ) {
+ return SizedBox(
+ height: 56.h,
+ child: Row(
+ spacing: 8.w,
+ children: [
+ Utils.buildSvgWithAssets(icon: icon, iconColor: AppColors.greyTextColor),
+ label.toText14(isBold: true, textOverflow: TextOverflow.ellipsis, maxlines: 1).expanded,
+
+ Row(
+ spacing: 24.w,
+ children: [
+ Utils.buildSvgWithAssets(icon: AppAssets.x2).onPress(()=> launchUrl(Uri.parse("https://twitter.com/HMG"))),
+ Utils.buildSvgWithAssets(icon: AppAssets.fb).onPress(()=> launchUrl(Uri.parse("https://www.facebook.com/DrSulaimanAlHabib?ref=tn_tnmn"))),
+ Utils.buildSvgWithAssets(icon: AppAssets.linkedin).onPress(()=> launchUrl(Uri.parse("https://www.linkedin.com/company/drsulaiman-alhabib-medical-group"))),
+ Utils.buildSvgWithAssets(icon: AppAssets.youtube).onPress(()=> launchUrl(Uri.parse("https://www.youtube.com/c/DrsulaimanAlhabibHospitals"))),
+ ],
+ )
+ ],
+ ).paddingOnly(left: 16.w, right: 16.w),
+ );
+ }
}
class FamilyCardWidget extends StatefulWidget {