File size: 2,055 Bytes
0a2f730
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
069d6cd
0a2f730
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import { fetchAutocomplete } from './api.js';
import { getRecommendations } from "./app.js";

let autocompleteTimer = null;

export function handleAutocomplete(event) {
  console.log("Autocomplete triggered with:", event.target.value);

  const query = event.target.value.trim();
  const suggestionBox = document.getElementById('autocomplete-list');

  if (!suggestionBox) {
    console.error("Autocomplete list element not found in DOM");
    return;
  }

  suggestionBox.innerHTML = '';
  if (query.length < 2) return;

  clearTimeout(autocompleteTimer);
  autocompleteTimer = setTimeout(async () => {
    try {
      console.log("Fetching autocomplete results for:", query);
      const suggestions = await fetchAutocomplete(query);
      console.log("Received autocomplete suggestions:", suggestions);
      showSuggestions(suggestions);
    } catch (error) {
      console.error("Error fetching autocomplete suggestions:", error);
    }
  }, 300);
}


export function showSuggestions(suggestions) {
  const suggestionBox = document.getElementById("autocomplete-list");
  if (!suggestionBox) {
    console.error("Autocomplete list not found in the DOM");
    return;
  }

  console.log("Updating UI with suggestions:", suggestions);

  suggestionBox.innerHTML = ""; // Clear previous suggestions

  if (!suggestions.length) {
    console.log("No autocomplete suggestions found.");
    suggestionBox.classList.add("d-none"); // Hide if no results
    return;
  }

  suggestionBox.classList.remove("d-none"); // Ensure it's visible

  suggestions.forEach((title) => {
    const item = document.createElement("div");
    item.classList.add("list-group-item", "list-group-item-action");
    item.textContent = title;
    item.addEventListener("click", () => {
      const movieInput = document.getElementById("movie-input");
      if (movieInput) {
        movieInput.value = title;
      }
      suggestionBox.innerHTML = "";
      suggestionBox.classList.add("d-none");
      getRecommendations();
    });
    suggestionBox.appendChild(item);
  });
}