import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart'; import '../../../core/constants/translation_keys.dart'; import '../../../custom_widgets/custom_app_bar.dart'; import '../../../res/app_colors.dart'; import '../controllers/agent_location_controller.dart'; class AgentLocationView extends GetView { const AgentLocationView({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Scaffold( appBar: DashBoardAppBar( title: TranslationKeys.makeTranslation(TranslationKeys.textMapLocationTitle), onBackButtonPressed: () { Get.back(); }, actions: [ PopupMenuButton( color: AppColors.white, icon: const Icon( Icons.more_vert, color: AppColors.white, // Set your desired color for the actions dots ), onSelected: (selectedMapType) { controller.changeMapType(selectedMapType); }, itemBuilder: (BuildContext context) { return [ PopupMenuItem( value: MapType.normal, child: Text( TranslationKeys.makeTranslation(TranslationKeys.textNormalMap), style: Theme.of(context).textTheme.titleSmall, ), ), PopupMenuItem( value: MapType.satellite, child: Text( TranslationKeys.makeTranslation(TranslationKeys.textSatelliteMap), style: Theme.of(context).textTheme.titleSmall, ), ), PopupMenuItem( value: MapType.hybrid, child: Text( TranslationKeys.makeTranslation(TranslationKeys.textHybridMap), style: Theme.of(context).textTheme.titleSmall, ), ), ]; }, ), ], ), body: Obx(() { return GoogleMap( mapType: controller.selectedMapType.value, initialCameraPosition: const CameraPosition( target: LatLng(37.7749, -122.4194), zoom: 12.0, ), markers: controller.markers.toSet(), onMapCreated: (GoogleMapController controller) { /// You can use the controller for further map customization }, onTap: (LatLng latLng) { /// Close any existing dialogs when tapping on the map // Get.back(); /// Find the tapped marker based on its position final tappedMarker = controller.markers.firstWhere( (marker) => marker.position == latLng, ); final tappedBranch = controller.getBranches(controller.mapType.first)[0]; Get.defaultDialog( title: tappedBranch.name, content: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text('${TranslationKeys.makeTranslation(TranslationKeys.textMapContactNumber)} ${tappedBranch.contactNumber}'), Text('${TranslationKeys.makeTranslation(TranslationKeys.textMapContactNumber)} ${tappedBranch.contactNumber}'), ], ), ); }, ); }), ); } }