Commit
·
6e41f47
1
Parent(s):
9bbc59c
Update findSimilarFromResult function and improve dataset suggestions handling
Browse files- index.html +27 -19
index.html
CHANGED
|
@@ -476,15 +476,19 @@
|
|
| 476 |
if (e.key === "Enter") findSimilarDatasets();
|
| 477 |
});
|
| 478 |
|
| 479 |
-
//
|
| 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 (!
|
| 539 |
-
|
| 540 |
-
|
| 541 |
-
|
| 542 |
-
|
| 543 |
-
|
| 544 |
-
|
| 545 |
-
|
| 546 |
-
|
| 547 |
-
|
| 548 |
-
|
|
|
|
|
|
|
| 549 |
}
|
| 550 |
});
|
| 551 |
|
| 552 |
-
// Show trending datasets on focus
|
| 553 |
datasetInput.addEventListener("focus", async () => {
|
| 554 |
-
|
| 555 |
-
|
| 556 |
-
|
|
|
|
|
|
|
|
|
|
| 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>
|