Handle invalid coordinate input to prevent TypeError.

This commit is contained in:
Leon Zandman 2026-05-25 17:55:18 +02:00
parent 6a3a370bb1
commit effa97cd0e

View File

@ -71,6 +71,16 @@ class ShowOnMap extends Operation {
} }
latLong = latLong.replace(/[,]$/, ""); latLong = latLong.replace(/[,]$/, "");
latLong = latLong.replace(/°/g, ""); latLong = latLong.replace(/°/g, "");
// The map requires a latitude and longitude pair. If the conversion only produced a
// single value (e.g. because the chosen input delimiter didn't match the input), bail
// out with a helpful message rather than passing it on to the map, which would throw an
// uncaught TypeError in the browser.
const coords = latLong.split(",").map(v => v.trim());
if (coords.length !== 2 || coords.some(v => v === "" || isNaN(Number(v)))) {
throw new OperationError(`Could not show co-ordinates '${latLong}' on the map. Expected a latitude and longitude pair - check that the input format and delimiter are correct.`);
}
return latLong; return latLong;
} }
return input; return input;