diff --git a/src/pages/MapPage.tsx b/src/pages/MapPage.tsx index 350725e..4886a4b 100644 --- a/src/pages/MapPage.tsx +++ b/src/pages/MapPage.tsx @@ -326,6 +326,80 @@ function StashDrawer() { ); } +// Universal directions picker β works on GrapheneOS, iOS, any browser +function DirectionsMenu({ lat, lon, label }: { lat: string; lon: string; label: string }) { + const [open, setOpen] = useState(false); + + const options = [ + { + name: 'Maps (device default)', + sub: 'Opens your default maps app', + href: `geo:${lat},${lon}?q=${lat},${lon}(${label})`, + emoji: 'π', + }, + { + name: 'OpenStreetMap', + sub: 'Privacy-friendly, no account', + href: `https://www.openstreetmap.org/?mlat=${lat}&mlon=${lon}&zoom=17`, + emoji: 'πΊοΈ', + }, + { + name: 'Google Maps', + sub: 'Opens in browser or app', + href: `https://maps.google.com/?q=${lat},${lon}`, + emoji: 'π΅', + }, + { + name: 'Apple Maps', + sub: 'iOS & macOS', + href: `https://maps.apple.com/?ll=${lat},${lon}&q=${label}`, + emoji: 'π', + }, + ]; + + return ( + <> + + + {open && ( + <> + {/* Backdrop */} +
Open with
+