fix crash on rick-roll pickup points (WTF InPost?!)
This commit is contained in:
parent
0abedfc12a
commit
bd394c4c00
|
@ -268,16 +268,21 @@ const refreshPackages = async (response?: Package[]) => {
|
||||||
const details = row.insertCell(4);
|
const details = row.insertCell(4);
|
||||||
const opener = row.insertCell(5);
|
const opener = row.insertCell(5);
|
||||||
|
|
||||||
row.dataset.pickupPointLat = shipment.pickupPoint.location.latitude.toString();
|
// apparently there are rick-roll pickup points
|
||||||
row.dataset.pickupPointLon = shipment.pickupPoint.location.longitude.toString();
|
if (shipment.pickupPoint.location) {
|
||||||
|
row.dataset.pickupPointLat = shipment.pickupPoint.location.latitude.toString();
|
||||||
|
row.dataset.pickupPointLon = shipment.pickupPoint.location.longitude.toString();
|
||||||
|
}
|
||||||
row.dataset.pickupPointDescription = shipment.pickupPoint.description;
|
row.dataset.pickupPointDescription = shipment.pickupPoint.description;
|
||||||
row.dataset.pickupPointName = shipment.pickupPoint.name;
|
row.dataset.pickupPointName = shipment.pickupPoint.name;
|
||||||
row.dataset.pickupPointStatus = shipment.pickupPoint.status;
|
row.dataset.pickupPointStatus = shipment.pickupPoint.status;
|
||||||
row.dataset.pickupPointStreet = shipment.pickupPoint.address.street;
|
if (shipment.pickupPoint.address) {
|
||||||
row.dataset.pickupPointStreetNumber = shipment.pickupPoint.address.buildingNumber;
|
row.dataset.pickupPointStreet = shipment.pickupPoint.address.street;
|
||||||
row.dataset.pickupPointCity = shipment.pickupPoint.address.city;
|
row.dataset.pickupPointStreetNumber = shipment.pickupPoint.address.buildingNumber;
|
||||||
row.dataset.pickupPointProvince = shipment.pickupPoint.address.province;
|
row.dataset.pickupPointCity = shipment.pickupPoint.address.city;
|
||||||
row.dataset.pickupPointPostCode = shipment.pickupPoint.address.postCode;
|
row.dataset.pickupPointProvince = shipment.pickupPoint.address.province;
|
||||||
|
row.dataset.pickupPointPostCode = shipment.pickupPoint.address.postCode;
|
||||||
|
}
|
||||||
row.dataset.openCode = shipment.openCode;
|
row.dataset.openCode = shipment.openCode;
|
||||||
row.dataset.id = shipment.shipmentNumber;
|
row.dataset.id = shipment.shipmentNumber;
|
||||||
row.dataset.sender = shipment.senderName;
|
row.dataset.sender = shipment.senderName;
|
||||||
|
@ -296,44 +301,49 @@ const refreshPackages = async (response?: Package[]) => {
|
||||||
const detailsBox = document.querySelector(".details-box")! as HTMLDivElement;
|
const detailsBox = document.querySelector(".details-box")! as HTMLDivElement;
|
||||||
detailsBox.style.display = "block";
|
detailsBox.style.display = "block";
|
||||||
const data = ((event.target as Element).parentNode!.parentNode as HTMLElement).dataset;
|
const data = ((event.target as Element).parentNode!.parentNode as HTMLElement).dataset;
|
||||||
// maybe this looks like shit, but it works
|
if (data.pickupPointLat && data.pickupPointLon) {
|
||||||
let leafletLoaded = false;
|
showElements(["#map"]);
|
||||||
try {
|
// maybe this looks like shit, but it works
|
||||||
leafletLoaded = !!L;
|
let leafletLoaded = false;
|
||||||
} catch (e) {
|
try {
|
||||||
if (!(e instanceof ReferenceError)) {
|
leafletLoaded = !!L;
|
||||||
throw e;
|
} catch (e) {
|
||||||
|
if (!(e instanceof ReferenceError)) {
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
if (!leafletLoaded) {
|
||||||
if (!leafletLoaded) {
|
document.querySelector("head")!.appendChild(leafletLoaderCSS);
|
||||||
document.querySelector("head")!.appendChild(leafletLoaderCSS);
|
document.querySelector("head")!.appendChild(leafletLoaderJS);
|
||||||
document.querySelector("head")!.appendChild(leafletLoaderJS);
|
await new Promise<void>((resolve, reject) => {
|
||||||
await new Promise((resolve, reject) => {
|
leafletLoaderJS.addEventListener("load", () => {
|
||||||
leafletLoaderJS.addEventListener("load", () => {
|
resolve();
|
||||||
resolve();
|
});
|
||||||
|
leafletLoaderJS.addEventListener("error", () => {
|
||||||
|
reject();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
leafletLoaderJS.addEventListener("error", () => {
|
map = L.map("map");
|
||||||
reject();
|
}
|
||||||
});
|
map!.setView([parseFloat(data.pickupPointLat!), parseFloat(data.pickupPointLon!)], 17);
|
||||||
});
|
L.tileLayer("https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png", {
|
||||||
map = L.map("map");
|
attribution:
|
||||||
|
'Map data © <a href="https://openstreetmap.org/copyright">OpenStreetMap contributors</a>',
|
||||||
|
maxZoom: 19,
|
||||||
|
}).addTo(map!);
|
||||||
|
// delete previous markers
|
||||||
|
while (markers.length > 0) {
|
||||||
|
// @ts-ignore it's always marker, while loop checks length
|
||||||
|
map.removeLayer(markers.pop());
|
||||||
|
}
|
||||||
|
const marker = L.marker([
|
||||||
|
parseFloat(data.pickupPointLat!),
|
||||||
|
parseFloat(data.pickupPointLon!),
|
||||||
|
]).addTo(map!);
|
||||||
|
markers.push(marker);
|
||||||
|
} else {
|
||||||
|
hideElements(["#map"]);
|
||||||
}
|
}
|
||||||
map!.setView([parseFloat(data.pickupPointLat!), parseFloat(data.pickupPointLon!)], 17);
|
|
||||||
L.tileLayer("https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png", {
|
|
||||||
attribution:
|
|
||||||
'Map data © <a href="https://openstreetmap.org/copyright">OpenStreetMap contributors</a>',
|
|
||||||
maxZoom: 19,
|
|
||||||
}).addTo(map!);
|
|
||||||
// delete previous markers
|
|
||||||
while (markers.length > 0) {
|
|
||||||
// @ts-ignore it's always marker, while loop checks length
|
|
||||||
map.removeLayer(markers.pop());
|
|
||||||
}
|
|
||||||
const marker = L.marker([
|
|
||||||
parseFloat(data.pickupPointLat!),
|
|
||||||
parseFloat(data.pickupPointLon!),
|
|
||||||
]).addTo(map!);
|
|
||||||
markers.push(marker);
|
|
||||||
const openButton = detailsBox.querySelector(
|
const openButton = detailsBox.querySelector(
|
||||||
".modal-card-foot button.is-primary",
|
".modal-card-foot button.is-primary",
|
||||||
)! as HTMLButtonElement;
|
)! as HTMLButtonElement;
|
||||||
|
|
Loading…
Reference in a new issue