function generatePanelContent(data) {
const { movie, credits } = data;
const posterUrl = movie.poster_path
? `https://image.tmdb.org/t/p/w200${movie.poster_path}`
: 'default_image_url';
const genres = movie.genres.map(genre => {
return `${genre.name}`;
}).join(', ');
const director = credits.crew.find(crewMember => crewMember.job === 'Director');
const directorLink = director
? `${director.name}`
: 'N/A';
const cast = credits.cast.slice(0, 5).map(castMember => {
return `${castMember.name}`;
}).join(', ');
const movieDetailsInnerHTML = `
${movie.title}
${movie.overview}
Genres: ${genres}
Director: ${directorLink}
Cast: ${cast}`;
return { posterUrl, movieDetailsInnerHTML };
}
function showDetails(movieId) {
fetch(`/movie/${movieId}`)
.then(response => response.json())
.then(movie => {
fetch(`/movie/${movieId}/credits`)
.then(response => response.json())
.then(credits => {
const panel = document.getElementById('side-panel');
const overlay = document.getElementById('overlay');
const moviePoster = document.getElementById('movie-poster');
const movieDetails = document.getElementById('movie-details');
// Retrieve posterUrl and movieDetailsInnerHTML from generatePanelContent
const { posterUrl, movieDetailsInnerHTML } = generatePanelContent({ movie, credits });
// Update the respective DOM elements
moviePoster.src = posterUrl;
movieDetails.innerHTML = movieDetailsInnerHTML;
panel.classList.add('active'); // Add active class to slide in
overlay.classList.add('active'); // Show overlay
});
});
}
function closePanel() {
const panel = document.getElementById('side-panel');
const overlay = document.getElementById('overlay');
panel.classList.remove('active'); // Remove active class to slide out
overlay.classList.remove('active'); // Hide overlay
}