diff --git a/lib/src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx b/lib/src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx index 4ef0b91c..59155809 100644 --- a/lib/src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx +++ b/lib/src/Components/Map/Subcomponents/ItemPopupComponents/HeaderView.tsx @@ -21,9 +21,6 @@ import { useNavigate } from 'react-router-dom' import { toast } from 'react-toastify' import ChevronSVG from '#assets/chevron.svg' -import AppleMapsSVG from '#assets/navigation/apple-maps.svg' -import GoogleMapsSVG from '#assets/navigation/googlemaps.svg' -import OpenStreetMapSVG from '#assets/navigation/OSM.svg' import ClipboardSVG from '#assets/share/clipboard.svg' import FacebookSVG from '#assets/share/facebook.svg' import LinkedinSVG from '#assets/share/linkedin.svg' @@ -151,29 +148,30 @@ export function HeaderView({ .replace('{title}', encodeURIComponent(shareTitle)) } - const routingServices = [ - { - name: 'Google Maps', - url: item?.position?.coordinates - ? `https://www.google.com/maps/dir/?api=1&destination=${item.position.coordinates[1]},${item.position.coordinates[0]}` - : '', - icon: Google Maps, - }, - { - name: 'Apple Maps', - url: item?.position?.coordinates - ? `https://maps.apple.com/?daddr=${item.position.coordinates[1]},${item.position.coordinates[0]}` - : '', - icon: Apple Maps, - }, - { - name: 'OpenStreetMap', - url: item?.position?.coordinates - ? `https://www.openstreetmap.org/directions?to=${item.position.coordinates[1]},${item.position.coordinates[0]}` - : '', - icon: OpenStreetMap, - }, - ] + const coordinates = item?.position?.coordinates + const latitude = coordinates?.[1] + const longitude = coordinates?.[0] + + const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) + const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test( + navigator.userAgent, + ) + + const getNavigationUrl = () => { + if (!coordinates || !latitude || !longitude) return '' + + // Try geo: link first (works on most mobile devices) + if (isMobile) { + return `geo:${latitude},${longitude}` + } + + // Fallback to web-based maps + if (isIOS) { + return `https://maps.apple.com/?daddr=${latitude},${longitude}` + } else { + return `https://www.google.com/maps/dir/?api=1&destination=${latitude},${longitude}` + } + } const openDeleteModal = async (event: React.MouseEvent) => { setModalOpen(true) @@ -323,31 +321,16 @@ export function HeaderView({ Follow {item?.position?.coordinates ? ( -
-
- -
- -
+ + + ) : (