autocomplete.js
const createAutocomplete=( {root, renderOption, onOptionSelect, inputValueFun, fetchData} )=> { root.innerHTML=` Search for a movie name `; const inputField=root.querySelector(".input"); const dropdown=root.querySelector(".dropdown"); const results=root.querySelector(".results"); let timeoutId; const onInputValue= event=>{ if(timeoutId) { clearTimeout(timeoutId); } timeoutId= setTimeout(async()=> { const movies=await fetchData(event.target.value) if(!movies.length) { dropdown.classList.remove("is-active"); return; } results.innerHTML=""; dropdown.classList.add("is-active"); for (const movie of movies) { const option= document.createElement("a"); const imgSrc=movie.Poster==="N/A"?" ":movie.Poster; optio...