exported getLocation function for reusability

This commit is contained in:
Pete Gerlach
2024-06-11 13:35:38 +02:00
parent 5bddc03d5c
commit d5bdb496d8
2 changed files with 25 additions and 14 deletions

View File

@@ -1,4 +1,5 @@
import axios from "axios" import axios from "axios"
import {locationUtils} from "../utils/location";
const path = "https://api.jodel.anxietyprime.de/post"; const path = "https://api.jodel.anxietyprime.de/post";
@@ -10,20 +11,17 @@ export const postApi = {
return (await axios.get(`${path}/${id}`)).data; return (await axios.get(`${path}/${id}`)).data;
}, },
async createNewPost(title, content) { async createNewPost(title, content) {
if (navigator.geolocation) { const location = locationUtils.getCurrentLocation();
navigator.geolocation.getCurrentPosition(async function(position) { if(location.lon && location.lat) {
const latitude = position.coords.latitude; await axios.post(`${path}s`, {
const longitude = position.coords.longitude; "authorID": 1,
await axios.post(`${path}s`, { "title": title,
"authorID": 1, "content": content,
"title": title, "date": Date.now().toString(),
"content": content, "location": {
"date": Date.now().toString(), "longitude": location.lon,
"location": { "latitude": location.lat,
"longitude": longitude, },
"latitude": latitude,
},
});
}); });
} else { } else {
console.log("Geolocation is not supported by this browser. Could'nt post without valid location"); console.log("Geolocation is not supported by this browser. Could'nt post without valid location");

13
src/utils/location.js Normal file
View File

@@ -0,0 +1,13 @@
export const locationUtils = {
getCurrentLocation: () => {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(async function(position) {
const latitude = position.coords.latitude;
const longitude = position.coords.longitude;
return {lon: longitude, lat: latitude};
});
} else {
return {lon: null, lat: null};
}
}
}