]> git.openstreetmap.org Git - nominatim-ui.git/blobdiff - src/components/ResultsList.svelte
version 3.1.0 (#143)
[nominatim-ui.git] / src / components / ResultsList.svelte
index 584e4812c2dd909af1fb3cc92ebf3c9e6da34c3b..2fc6828e7f9034ce5ab9cec5bdef8c7c1a698d88 100644 (file)
@@ -1,11 +1,13 @@
 <script>
-  import { results_store, current_result_store } from '../lib/stores.js';
-  import { formatLabel, detailsURL } from '../lib/helpers.js';
+  import { results_store } from '../lib/stores.js';
+  import { formatLabel } from '../lib/helpers.js';
 
+  import DetailsLink from './DetailsLink.svelte';
   import Welcome from './Welcome.svelte';
   import MapIcon from './MapIcon.svelte';
 
-  export let reverse_search=false;
+  export let reverse_search = false;
+  export let current_result = null;
 
   let aSearchResults;
   let iHighlightNum;
@@ -15,7 +17,7 @@
     if (!data) { return; }
     aSearchResults = data;
     iHighlightNum = 0;
-    current_result_store.set(aSearchResults[0]);
+    current_result = aSearchResults[0];
 
 
     let search_params = new URLSearchParams(window.location.search);
 
   function handleClick(e) {
     let result_el = e.target;
-    if (! result_el.className.match('result') ){
+    if (!result_el.className.match('result')) {
       result_el = result_el.parentElement;
     }
     let pos = Number(result_el.dataset.position);
 
-    current_result_store.set(aSearchResults[pos]);
+    current_result = aSearchResults[pos];
     iHighlightNum = pos;
   }
 
@@ -60,9 +62,9 @@
         </div>
         <span class="name">{aResult.display_name}</span>
         <span class="type">{formatLabel(aResult)}</span>
-        <p class="coords">{aResult.lat},{aResult.lon}</p>  
+        <p class="coords">{aResult.lat},{aResult.lon}</p>
 
-        <a class="details btn btn-outline-secondary btn-sm" href="{detailsURL(aResult)}">details</a>
+        <DetailsLink extra_classes="btn btn-outline-secondary btn-sm" feature={aResult}>details</DetailsLink>
       </div>
     {/each}
 
     background-color: #D9E7F7;
     border-color: #9DB9E4;
   }
-  .result.highlight .details {
+  .result.highlight :global(a) {
     margin: 10px auto;
     display: block;
     max-width: 10em;
     padding: 1px;
+    background-color: white;
   }
   .result .type{
     color: gray;
     font-size: 0.8em;
   }
-  .result .details {
+  .result :global(a) {
     display: none;
   }
 
     margin-top: 1em;
   }
 
-  .btn-outline-secondary {
-    background-color: white;
-  }
-
-  .btn-outline-secondary:hover {
+  .result.highlight :global(a):hover {
     color: #111;
   }
-</style>
\ No newline at end of file
+</style>