From 6fe107601ef2fd91dc6f4db5ef6676ece5787eb2 Mon Sep 17 00:00:00 2001 From: Eli Ribble Date: Tue, 24 Mar 2026 05:31:38 +0000 Subject: [PATCH] Handle address data more gracefully Helps avoid having embarrassments at the conference --- html/template/rmo/nuisance.html | 10 +++++----- html/template/rmo/water.html | 10 +++++----- static/js/address-suggestion.js | 9 ++++++++- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/html/template/rmo/nuisance.html b/html/template/rmo/nuisance.html index 52401cc4..0b24045f 100644 --- a/html/template/rmo/nuisance.html +++ b/html/template/rmo/nuisance.html @@ -78,11 +78,11 @@ longitude.value = location.geometry.coordinates[0]; latlngAccuracyType.value = props.precision; latlngAccuracyValue.value = props.distance; - number.value = props.address_components.number; - postalcode.value = props.address_components.postal_code; - locality.value = context.whosonfirst.locality.name; - region.value = context.whosonfirst.region.abbreviation; - street.value = props.address_components.street; + number.value = props.address_components?.number ?? ""; + postalcode.value = props.address_components?.postal_code ?? ""; + locality.value = context.whosonfirst?.locality?.name ?? ""; + region.value = context.whosonfirst?.region?.abbreviation ?? ""; + street.value = props.address_components?.street ?? ""; } function toggleCollapse(something) { el = document.getElementById(something); diff --git a/html/template/rmo/water.html b/html/template/rmo/water.html index 453091e0..5aa2af71 100644 --- a/html/template/rmo/water.html +++ b/html/template/rmo/water.html @@ -78,11 +78,11 @@ longitude.value = location.geometry.coordinates[0]; latlngAccuracyType.value = props.precision || 0; latlngAccuracyValue.value = props.distance || 0; - number.value = props.address_components.number; - postalcode.value = props.address_components.postal_code; - locality.value = context.whosonfirst.locality.name; - region.value = props.context.whosonfirst.region.abbreviation; - street.value = props.address_components.street; + number.value = props.address_components?.number ?? ""; + postalcode.value = props.address_components?.postal_code ?? ""; + locality.value = context.whosonfirst?.locality?.name ?? ""; + region.value = context.whosonfirst?.region?.abbreviation ?? ""; + street.value = props.address_components?.street ?? ""; } function toggleCollapse(something) { el = document.getElementById(something); diff --git a/static/js/address-suggestion.js b/static/js/address-suggestion.js index 8c2284d6..4b1afacb 100644 --- a/static/js/address-suggestion.js +++ b/static/js/address-suggestion.js @@ -201,7 +201,14 @@ class AddressInput extends HTMLElement { } SetValue(suggestion) { - this.value = suggestion.properties.formatted_address_line; + const props = suggestion.properties; + if (props.formatted_address_line) { + this.value = props.formatted_address_line; + } else if (props.address_components) { + this.value = `${props.address_components.number ?? ""} ${props.address_components.street ?? ""}, ${props.coarse_location ?? ""}`; + } else { + this.value = `${props.name ?? ""}, ${props.coarse_location}`; + } this._suggestions.innerHTML = ""; } }