mirror of
https://github.com/Dvorinka/Portfolio.git
synced 2026-06-04 03:42:56 +00:00
40 lines
1.1 KiB
JavaScript
40 lines
1.1 KiB
JavaScript
'use strict';
|
|
|
|
import { updateWeather, error404 } from "./app.js";
|
|
const defaultLocation = "#/weather?lat=49.0419613&lon=17.4662204" // London
|
|
|
|
const currentLocation = function () {
|
|
window.navigator.geolocation.getCurrentPosition(res => {
|
|
const { latitude, longitude } = res.coords;
|
|
|
|
updateWeather(`lat=${latitude}`, `lon=${longitude}`);
|
|
}, err => {
|
|
window.location.hash = defaultLocation;
|
|
});
|
|
}
|
|
|
|
const searchedLocation = query => updateWeather(...query.split("&"));
|
|
// updateWeather("lat=51.5073219", "lon=-0.1276474")
|
|
|
|
const routes = new Map([
|
|
["/current-location", currentLocation],
|
|
["/weather", searchedLocation]
|
|
]);
|
|
|
|
const checkHash = function () {
|
|
const requestURL = window.location.hash.slice(1);
|
|
|
|
const [route, query] = requestURL.includes ? requestURL.split("?") : [requestURL];
|
|
|
|
routes.get(route) ? routes.get(route)(query) : error404();
|
|
}
|
|
|
|
window.addEventListener("hashchange", checkHash);
|
|
|
|
window.addEventListener("load", function () {
|
|
if (!window.location.hash) {
|
|
window.location.hash = "#/current-location";
|
|
} else {
|
|
checkHash();
|
|
}
|
|
}); |