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 {locationUtils} from "../utils/location";
const path = "https://api.jodel.anxietyprime.de/post";
@@ -10,21 +11,18 @@ export const postApi = {
return (await axios.get(`${path}/${id}`)).data;
},
async createNewPost(title, content) {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(async function(position) {
const latitude = position.coords.latitude;
const longitude = position.coords.longitude;
const location = locationUtils.getCurrentLocation();
if(location.lon && location.lat) {
await axios.post(`${path}s`, {
"authorID": 1,
"title": title,
"content": content,
"date": Date.now().toString(),
"location": {
"longitude": longitude,
"latitude": latitude,
"longitude": location.lon,
"latitude": location.lat,
},
});
});
} else {
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};
}
}
}