|
|
|
|
|
|
|
|
|
|
|
|
|
|
export async function get_location() { |
|
|
return new Promise((resolve, reject) => { |
|
|
if (!navigator.geolocation) { |
|
|
reject("Geolocation not supported."); |
|
|
return; |
|
|
} |
|
|
navigator.geolocation.getCurrentPosition( |
|
|
(pos) => |
|
|
resolve({ |
|
|
latitude: pos.coords.latitude, |
|
|
longitude: pos.coords.longitude, |
|
|
}), |
|
|
(err) => reject(err.message || "Geolocation error"), |
|
|
); |
|
|
}); |
|
|
} |
|
|
|
|
|
export default (input, output) => |
|
|
React.createElement( |
|
|
"div", |
|
|
{ className: "bg-green-50 border border-green-200 rounded-lg p-4" }, |
|
|
React.createElement( |
|
|
"div", |
|
|
{ className: "flex items-center mb-2" }, |
|
|
React.createElement( |
|
|
"div", |
|
|
{ |
|
|
className: |
|
|
"w-8 h-8 bg-green-100 rounded-full flex items-center justify-center mr-3", |
|
|
}, |
|
|
"📍", |
|
|
), |
|
|
React.createElement( |
|
|
"h3", |
|
|
{ className: "text-green-900 font-semibold" }, |
|
|
"Location", |
|
|
), |
|
|
), |
|
|
output?.latitude && output?.longitude |
|
|
? React.createElement( |
|
|
"div", |
|
|
{ className: "space-y-1 text-sm" }, |
|
|
React.createElement( |
|
|
"p", |
|
|
{ className: "text-green-700" }, |
|
|
React.createElement( |
|
|
"span", |
|
|
{ className: "font-medium" }, |
|
|
"Latitude: ", |
|
|
), |
|
|
output.latitude.toFixed(6), |
|
|
), |
|
|
React.createElement( |
|
|
"p", |
|
|
{ className: "text-green-700" }, |
|
|
React.createElement( |
|
|
"span", |
|
|
{ className: "font-medium" }, |
|
|
"Longitude: ", |
|
|
), |
|
|
output.longitude.toFixed(6), |
|
|
), |
|
|
React.createElement( |
|
|
"a", |
|
|
{ |
|
|
href: `https://maps.google.com?q=${output.latitude},${output.longitude}`, |
|
|
target: "_blank", |
|
|
rel: "noopener noreferrer", |
|
|
className: |
|
|
"inline-block mt-2 text-green-600 hover:text-green-800 underline text-xs", |
|
|
}, |
|
|
"View on Google Maps", |
|
|
), |
|
|
) |
|
|
: React.createElement( |
|
|
"p", |
|
|
{ className: "text-green-700 text-sm" }, |
|
|
JSON.stringify(output), |
|
|
), |
|
|
); |
|
|
|