more
This commit is contained in:
@@ -10,53 +10,36 @@ import "../../styles/homepage.scss";
|
|||||||
const HomePage = () => {
|
const HomePage = () => {
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
|
||||||
async function saveVisit(visitor, visitId) {
|
async function saveData(data) {
|
||||||
console.log("visitor, visitId", visitor, visitId);
|
console.log("save data", data);
|
||||||
const latitude = `${visitor.latitude}`;
|
const id = uuidv4();
|
||||||
const collecRef = collection(db, "homevisitors");
|
const visitRef = collection(db, "homevisitors");
|
||||||
await setDoc(doc(collecRef, `${visitId}`), visitor, latitude);
|
await setDoc(doc(visitRef, `${id}`), data);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getPosition() {
|
||||||
|
return new Promise((res, rej) => {
|
||||||
|
navigator.geolocation.getCurrentPosition(res, rej);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
/*
|
|
||||||
if (window.location.href === "http://localhost:3000/") {
|
if (window.location.href === "http://localhost:3000/") {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
const visitor = {};
|
|
||||||
|
|
||||||
const options = {
|
const userAgent = window?.navigator.userAgent;
|
||||||
enableHighAccuracy: true,
|
getPosition().then((data) => {
|
||||||
timeout: 5000,
|
const dateTime = new Date();
|
||||||
maximumAge: 0,
|
const currentLat = data.coords.latitude;
|
||||||
};
|
const currentLong = data.coords.longitude;
|
||||||
|
const values = {};
|
||||||
function success(position) {
|
values["userAgent"] = userAgent;
|
||||||
const latitude = position.coords.latitude;
|
values["latitude"] = currentLat;
|
||||||
const longitude = position.coords.longitude;
|
values["longitude"] = currentLong;
|
||||||
const accuracy = position.coords.accuracy;
|
values["dateTime"] = String(dateTime);
|
||||||
visitor["latitude"] = `{latitude}`;
|
saveData(values);
|
||||||
visitor["longitude"] = longitude;
|
});
|
||||||
visitor["positionAccuracy"] = `~${accuracy} meters`;
|
|
||||||
}
|
|
||||||
|
|
||||||
function error() {
|
|
||||||
const error = "unable to ret locaction";
|
|
||||||
return error;
|
|
||||||
}
|
|
||||||
|
|
||||||
navigator?.geolocation?.getCurrentPosition(success, error, options);
|
|
||||||
|
|
||||||
visitor["userAgent"] = window?.navigator.userAgent;
|
|
||||||
const now = new Date();
|
|
||||||
visitor["dateTime"] = now;
|
|
||||||
const visitId = uuidv4();
|
|
||||||
|
|
||||||
try {
|
|
||||||
saveVisit(visitor, visitId);
|
|
||||||
} catch (error) {
|
|
||||||
console.log(`Error saving new user to db: ${error}`);
|
|
||||||
}
|
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const handleNavigate = () => {
|
const handleNavigate = () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user