From 04e5c6bab2b2b98527b9177e63f11cb109de29fc Mon Sep 17 00:00:00 2001 From: Quincy Morgan <2046746+quincylvania@users.noreply.github.com> Date: Fri, 13 Dec 2024 14:55:53 -0500 Subject: [PATCH] Fix sidebar race conditions --- js/sidebarController.js | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/js/sidebarController.js b/js/sidebarController.js index 9da37e5..09cef30 100644 --- a/js/sidebarController.js +++ b/js/sidebarController.js @@ -28,8 +28,11 @@ function closeSidebar() { function updateSidebar(entity) { + let sidebarElement = document.getElementById('sidebar'); + if (!sidebarElement) return; + if (!entity) { - document.getElementById('sidebar').innerHTML = ""; + sidebarElement.innerHTML = ""; return; } @@ -79,7 +82,7 @@ function updateSidebar(entity) { html += "

"; html += ""; - document.getElementById('sidebar').innerHTML = html; + sidebarElement.innerHTML = html; fetchOsmEntity(type, entityId).then(function(entity) { if (entity) { @@ -97,6 +100,9 @@ function updateSidebar(entity) { } function updateMetaTable(entity, changeset) { + const element = document.getElementById('meta-table'); + if (!element) return; + let formattedDate = getFormattedDate(new Date(entity.timestamp)); let comment = changeset && changeset.tags && changeset.tags.comment || ''; let sources = changeset && changeset.tags && changeset.tags.source || ''; @@ -109,7 +115,7 @@ function updateMetaTable(entity, changeset) { html += `Changeset${entity.changeset}`; html += `Comment${comment}`; html += `Source${sources}`; - document.getElementById('meta-table').innerHTML = html; + element.innerHTML = html; } const urlRegex = /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)$/i; @@ -118,6 +124,9 @@ const wikipediaRegex = /^(.+):(.+)$/; const nwisRegex = /^\d{8,15}$/; function updateTagsTable(tags) { + const element = document.getElementById('tag-table'); + if (!element) return; + let html = ""; html += `KeyValue`; let keys = Object.keys(tags).sort(); @@ -137,10 +146,13 @@ function updateTagsTable(tags) { } html += `${key}${element}`; } - document.getElementById('tag-table').innerHTML = html; + element.innerHTML = html; } function updateMembershipsTable(memberships) { + const element = document.getElementById('relations-table'); + if (!element) return; + let html = ""; if (memberships.length) { @@ -159,7 +171,7 @@ function updateMembershipsTable(memberships) { html += `Relations`; html += `none`; } - document.getElementById('relations-table').innerHTML = html; + element.innerHTML = html; } function didClickEntityLink(e) {