diff --git a/sites/events/src/main.js b/sites/events/src/main.js index 982eb88..fb806b5 100644 --- a/sites/events/src/main.js +++ b/sites/events/src/main.js @@ -193,6 +193,14 @@ function locationOf(ev) { return parts.length ? parts.join(", ") : (ev.formatted_address || "Location TBD"); } +// Straight-line miles from St. Louis, when the event has coordinate data. +function distanceFromStLouis(ev) { + const coord = ev.coordinate; // BCP gives [lon, lat] + if (!Array.isArray(coord) || coord.length !== 2) return null; + const [lon, lat] = coord; + return milesBetween(lat, lon, ST_LOUIS.lat, ST_LOUIS.lon); +} + // BCP's only reliable format signal is the teamEvent flag. There's no // dedicated "team size" field — the closest candidate (totalPlayers / // totalTeamPlayers) reflects live registration progress, not the event's @@ -271,6 +279,7 @@ function setupFilters() { // it with every circuit it matched under rather than showing it once // per circuit. function eventCard(ev, circuits) { + const distance = distanceFromStLouis(ev); const capacity = ev.numTickets ? `${ev.checkedInPlayers ?? 0}/${ev.numTickets} checked in` : ""; @@ -287,7 +296,7 @@ function eventCard(ev, circuits) {