import 'package:SEFER/views/home/HomePage/contact_us.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_font_icons/flutter_font_icons.dart'; import 'package:get/get.dart'; import 'package:get/get_rx/src/rx_typedefs/rx_typedefs.dart'; import 'package:SEFER/constant/style.dart'; import 'package:SEFER/views/home/my_wallet/passenger_wallet.dart'; import 'package:SEFER/views/home/profile/complaint_page.dart'; import 'package:SEFER/views/home/profile/order_history.dart'; import 'package:SEFER/views/home/profile/promos_passenger_page.dart'; import 'package:SEFER/views/home/profile/taarif_page.dart'; import 'package:url_launcher/url_launcher.dart'; import '../../../constant/colors.dart'; import '../../../controller/home/map_passenger_controller.dart'; import '../../notification/notification_page.dart'; import '../../widgets/icon_widget_menu.dart'; import '../home_page.dart'; import '../profile/passenger_profile_page.dart'; class MapMenuWidget extends StatelessWidget { const MapMenuWidget({ super.key, }); @override Widget build(BuildContext context) { return GetBuilder( builder: (controller) => Stack(children: [ Positioned( right: 60, left: 60, child: Padding( padding: const EdgeInsets.only(right: 20), child: Opacity( alwaysIncludeSemantics: false, opacity: 1, // Adjust the opacity value as needed child: AnimatedContainer( width: Get.width * .6, decoration: AppStyle.boxDecoration .copyWith(color: AppColor.blueColor), transform: Matrix4.translationValues( controller.heightMenu * .1, 1, 1), curve: Curves.easeOutCubic, clipBehavior: Clip.hardEdge, duration: const Duration(milliseconds: 300), height: controller.heightMenu, child: controller.heightMenuBool ? Row( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ IconWidgetMenu( onpressed: () { Get.to( () => const NotificationPage(), transition: Transition.circularReveal, ); }, title: 'Notifications'.tr, icon: Icons.notifications), IconWidgetMenu( onpressed: () { Get.to( () => PassengerProfilePage(), transition: Transition.zoom, ); }, icon: Icons.person, title: 'Profile'.tr, ), IconWidgetMenu( title: 'Home'.tr, onpressed: () { Get.to( () => const HomePage(), transition: Transition.downToUp, curve: Curves.easeInOutExpo, ); }, icon: Icons.home), ], ) : const SizedBox(), // Choose the desired overlay color )), ), ), Positioned( right: 5, top: 80, child: AnimatedContainer( duration: const Duration(milliseconds: 300), decoration: AppStyle.boxDecoration1, width: controller.widthMenu, child: Column( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ IconMainPageMap( onTap: () { Get.to(() => const PassengerWallet()); }, title: 'My Wallet'.tr, icon: Icons.wallet, ), IconMainPageMap( onTap: () async { Get.to(() => const OrderHistory()); }, title: 'Order History'.tr, icon: Icons.history, ), IconMainPageMap( onTap: () { Get.to(() => ContactUsPage()); }, title: "Contact Us".tr, icon: Icons.contact_page, ), ], ), )), Positioned( left: 5, top: 80, child: AnimatedContainer( duration: const Duration(milliseconds: 300), decoration: AppStyle.boxDecoration1, width: controller.widthMenu, height: Get.height * .3, child: Column( mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ IconMainPageMap( onTap: () async { final String driverAppUrl; if (defaultTargetPlatform == TargetPlatform.android) { driverAppUrl = 'https://play.google.com/store/apps/details?id=com.sefer_driver&pli=1'; // Replace with your driver app's Play Store URL } else if (defaultTargetPlatform == TargetPlatform.iOS) { driverAppUrl = 'https://apps.apple.com/app/sefer-driver/id6502189302'; // Replace with your driver app's App Store ID } else { // Handle other platforms or unknown platform (optional) return; } if (await canLaunchUrl(Uri.parse(driverAppUrl))) { await launchUrl(Uri.parse(driverAppUrl)); } else { throw 'Could not launch app store URL'; } }, title: 'Driver'.tr, icon: WeatherIcons.wi_moon_14, ), IconMainPageMap( onTap: () { Get.to(() => ComplaintPage()); }, title: 'Complaint'.tr, icon: Icons.feedback, ), IconMainPageMap( onTap: () { Get.to(() => const PromosPassengerPage()); }, title: 'Promos'.tr, icon: Icons.monetization_on, ), ], ), )) ]), ); } } class IconMainPageMap extends StatelessWidget { const IconMainPageMap({ super.key, required this.title, required this.onTap, required this.icon, }); final String title; final IconData icon; final Callback onTap; @override Widget build(BuildContext context) { return FutureBuilder( future: Future.delayed(const Duration(milliseconds: 400)), builder: (context, snapshot) { return GestureDetector( onTap: onTap, child: SizedBox( height: Get.height * .1, width: double.maxFinite, // decoration: AppStyle.boxDecoration, child: Padding( padding: const EdgeInsets.all(8.0), child: Column( children: [ Icon(icon), Text( title.tr, style: AppStyle.subtitle, ), ], ), ), ), ); }); } }