]> git.openstreetmap.org Git - nominatim-ui.git/blobdiff - src/pages/DetailsPage.svelte
Helper check for details keywords (#160)
[nominatim-ui.git] / src / pages / DetailsPage.svelte
index eef7f2393e0eeacba12ca5e8081992d8e3e8ad6d..2c7f8ba6d16534fab44270af6fecdecdbf326cd5 100644 (file)
     }
   }
 
+  function place_has_keywords(aThisPlace) {
+    // Return false if Nominatim API sends 'keywords: { name: [], address: [] }'
+    return (
+      aThisPlace.keywords && aThisPlace.keywords.name && aThisPlace.keywords.address
+      && (aThisPlace.keywords.name.length > 0 || aThisPlace.keywords.address.length > 0)
+    );
+  }
+
   $: {
     let pageinfo = $page;
     if (pageinfo.tab === 'details') {
@@ -76,7 +84,7 @@
           <small><DetailsLink feature={aPlace}>link to this page</DetailsLink></small>
         </h1>
       </div>
-      <div class="col-sm-2 text-right">
+      <div class="col-sm-2 text-end">
         <MapIcon aPlace={aPlace} />
       </div>
     </div>
@@ -86,7 +94,7 @@
           <tbody>
             <InfoRow title="Name">
             {#if (Array.isArray(aPlace.names)) }
-              <span class="noname font-weight-bold">No Name</span>
+              <span class="noname fw-bold">No Name</span>
             {:else}
               <InfoRowList items={aPlace.names} />
             {/if}
             <tr class="all-columns"><td colspan="6"><h2>Keywords</h2></td></tr>
             {#if api_request_params.keywords}
 
-              {#if aPlace.keywords && (aPlace.keywords.name || aPlace.keywords.address) }
+              {#if place_has_keywords(aPlace)}
                 <tr class="all-columns"><td colspan="6"><h3>Name Keywords</h3></td></tr>
                 {#each aPlace.keywords.name as keyword}
                   <tr>
 
             <tr class="all-columns"><td colspan="6"><h2>Parent Of</h2></td></tr>
             {#if api_request_params.hierarchy}
-              {#if aPlace.hierarchy && aPlace.hierarchy.length}
-
+              {#if aPlace.hierarchy && typeof (aPlace.hierarchy) === 'object' && Object.keys(aPlace.hierarchy).length}
                 {#each Object.keys(aPlace.hierarchy) as type}
                   <tr class="all-columns"><td colspan="6"><h3>{type}</h3></td></tr>
                   {#each aPlace.hierarchy[type] as line}