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); }); }