davanstrien HF staff commited on
Commit
6e41f47
·
1 Parent(s): 9bbc59c

Update findSimilarFromResult function and improve dataset suggestions handling

Browse files
Files changed (1) hide show
  1. index.html +27 -19
index.html CHANGED
@@ -476,15 +476,19 @@
476
  if (e.key === "Enter") findSimilarDatasets();
477
  });
478
 
479
- // Add new function to handle finding similar datasets from results
480
  function findSimilarFromResult(datasetId) {
481
  // Switch to the similar tab
482
  switchTab("similar");
483
 
484
- // Set the dataset ID in the input
485
  const datasetInput = document.getElementById("datasetInput");
486
  datasetInput.value = datasetId;
487
 
 
 
 
 
488
  // Trigger the search
489
  findSimilarDatasets();
490
  }
@@ -526,34 +530,38 @@
526
 
527
  // Update the event listeners section
528
  document.addEventListener("DOMContentLoaded", () => {
529
- // ... existing event listeners ...
530
-
531
  const datasetInput = document.getElementById("datasetInput");
 
532
 
533
  // Add input event listener for suggestions
534
  datasetInput.addEventListener("input", async (e) => {
535
  const suggestionsBox = document.getElementById("suggestionsBox");
536
  const value = e.target.value;
537
 
538
- if (!value) {
539
- // Show trending datasets when input is empty
540
- const trending = await fetchTrendingDatasets();
541
- displaySuggestions(trending, suggestionsBox);
542
- } else {
543
- // Filter trending datasets based on input
544
- const trending = await fetchTrendingDatasets();
545
- const filtered = trending.filter((dataset) =>
546
- dataset.toLowerCase().includes(value.toLowerCase())
547
- );
548
- displaySuggestions(filtered, suggestionsBox);
 
 
549
  }
550
  });
551
 
552
- // Show trending datasets on focus
553
  datasetInput.addEventListener("focus", async () => {
554
- const suggestionsBox = document.getElementById("suggestionsBox");
555
- const trending = await fetchTrendingDatasets();
556
- displaySuggestions(trending, suggestionsBox);
 
 
 
557
  });
558
  });
559
  </script>
 
476
  if (e.key === "Enter") findSimilarDatasets();
477
  });
478
 
479
+ // Update the findSimilarFromResult function
480
  function findSimilarFromResult(datasetId) {
481
  // Switch to the similar tab
482
  switchTab("similar");
483
 
484
+ // Set the dataset ID in the input without triggering the focus event
485
  const datasetInput = document.getElementById("datasetInput");
486
  datasetInput.value = datasetId;
487
 
488
+ // Hide suggestions box explicitly
489
+ const suggestionsBox = document.getElementById("suggestionsBox");
490
+ suggestionsBox.classList.add("hidden");
491
+
492
  // Trigger the search
493
  findSimilarDatasets();
494
  }
 
530
 
531
  // Update the event listeners section
532
  document.addEventListener("DOMContentLoaded", () => {
 
 
533
  const datasetInput = document.getElementById("datasetInput");
534
+ let programmaticFocus = false;
535
 
536
  // Add input event listener for suggestions
537
  datasetInput.addEventListener("input", async (e) => {
538
  const suggestionsBox = document.getElementById("suggestionsBox");
539
  const value = e.target.value;
540
 
541
+ if (!programmaticFocus) {
542
+ if (!value) {
543
+ // Show trending datasets when input is empty
544
+ const trending = await fetchTrendingDatasets();
545
+ displaySuggestions(trending, suggestionsBox);
546
+ } else {
547
+ // Filter trending datasets based on input
548
+ const trending = await fetchTrendingDatasets();
549
+ const filtered = trending.filter((dataset) =>
550
+ dataset.toLowerCase().includes(value.toLowerCase())
551
+ );
552
+ displaySuggestions(filtered, suggestionsBox);
553
+ }
554
  }
555
  });
556
 
557
+ // Show trending datasets on focus only when not programmatically focused
558
  datasetInput.addEventListener("focus", async () => {
559
+ if (!programmaticFocus) {
560
+ const suggestionsBox = document.getElementById("suggestionsBox");
561
+ const trending = await fetchTrendingDatasets();
562
+ displaySuggestions(trending, suggestionsBox);
563
+ }
564
+ programmaticFocus = false;
565
  });
566
  });
567
  </script>