Eric Hierholzer
1st commit
0a2f730
import { fetchRecommendations } from './api.js';
import { showSpinner, hideSpinner, displayRecommendations, showError } from './ui.js';
import { handleAutocomplete } from './autocomplete.js';
import { loadVisualizations } from './visualizations.js';
document.addEventListener('DOMContentLoaded', () => {
const recommendBtn = document.getElementById('recommend-btn');
const movieInput = document.getElementById('movie-input');
if (recommendBtn) {
recommendBtn.addEventListener('click', getRecommendations);
}
if (movieInput) {
movieInput.addEventListener('keyup', event => {
console.log("Key pressed:", event.key);
if (event.key === 'Enter') {
console.log("Enter pressed, fetching recommendations...");
getRecommendations();
} else {
console.log("Triggering autocomplete for:", event.target.value);
handleAutocomplete(event);
}
});
}
loadVisualizations();
});
async function getRecommendations() {
const titleInput = document.getElementById('movie-input');
const resultsDiv = document.getElementById('results');
if (!titleInput || !resultsDiv) return;
const title = titleInput.value.trim();
if (!title) {
showError(resultsDiv, 'Please enter a title.');
return;
}
showSpinner(resultsDiv);
try {
const data = await fetchRecommendations(title);
hideSpinner(resultsDiv);
displayRecommendations(resultsDiv, data, title);
} catch (error) {
console.error('Error fetching recommendations:', error);
hideSpinner(resultsDiv);
showError(resultsDiv, 'Error fetching recommendations.');
}
}
export { getRecommendations };