11import data from "./data/ghibli/ghibli.js" ;
2+
23const allMovies = document . getElementById ( "allMovies" ) ;
34const gallery = document . getElementById ( "gallery" ) ;
45const text = document . getElementById ( "search-input" ) ;
56const idDirector = document . getElementById ( "directores" ) ;
67const select = document . getElementById ( "filters" ) ;
78
9+ //Se llaman películas más vistas al inicio
810export const mostViewed = ( ) => {
911 const allPosters = data . films . filter ( ( movies ) => movies . most_viewed ) ;
1012
@@ -33,13 +35,11 @@ export const mostViewed = () => {
3335 gallery . appendChild ( images [ i ] ) ;
3436 }
3537} ;
36-
38+ //Se llaman todas las películas en menú películas
3739export const movies = ( ) => {
3840 //esto deja un array de string por lo que se crea una etiqueta imagen para poder insertar el poster
3941 const imagesMovies = data . films . map ( ( item ) => {
4042 const img = document . createElement ( "img" ) ;
41- // const div = document.createElement("div");
42- // div.classList.add("posters-container");
4343 img . classList . add ( "posters" ) ;
4444 img . src = item . poster ;
4545 img . alt = item . title ;
@@ -50,17 +50,14 @@ export const movies = () => {
5050 } ) ;
5151 imagesMovies . map ( ( image ) => allMovies . appendChild ( image ) ) ;
5252
53-
5453 allMovies . querySelectorAll ( ".posters" ) . forEach ( ( pelicula ) => {
55- pelicula . addEventListener ( ' click' , ( e ) => {
56- const movieObj = data . films . find ( movie => movie . title === e . target . alt )
54+ pelicula . addEventListener ( " click" , ( e ) => {
55+ const movieObj = data . films . find ( ( movie ) => movie . title === e . target . alt ) ;
5756 console . log ( movieObj ) ;
58- } )
57+ } ) ;
5958 } ) ;
60-
61-
6259} ;
63-
60+ //Optimización del despliegue de películas cada vez que se ejecute una de las funciones
6461const _forceRender = ( valueToRender ) => {
6562 if ( ! valueToRender && valueToRender . length ) return ;
6663
@@ -77,40 +74,26 @@ const _forceRender = (valueToRender) => {
7774 allMovies . innerHTML = "" ;
7875 imagesMovies . map ( ( image ) => allMovies . appendChild ( image ) ) ;
7976} ;
80-
77+ //Buscador de películas por componente del título
8178export const searchMovies = ( ) => {
8279 if ( ! text && ! text . value ) return ;
8380 const searchedMovies = data . films . filter ( ( item ) =>
84- //se cambia el star with por includes(busca si está en el array y da un boolean)
8581 item . title . toLowerCase ( ) . includes ( text . value . toLowerCase ( ) )
8682 ) ;
8783
8884 _forceRender ( searchedMovies ) ;
8985} ;
90-
86+ //Filtro de películas según el director
9187export const searchMoviesByDirector = ( ) => {
9288 const selectedDirector = idDirector . options [ idDirector . selectedIndex ] . value ;
9389
9490 const searchMoviesByDirector = data . films . filter (
9591 ( item ) => item . director === selectedDirector
9692 ) ;
9793
98- // console.log(searchMoviesByDirector);
99- // const imagesMovies = searchMoviesByDirector.map((item) => {
100- // const img = document.createElement("img");
101- // img.classList.add("posters");
102- // img.src = item.poster;
103- // img.width = 100;
104- // img.heigth = 100;
105- // //return finaliza el callback
106- // return img;
107- // });
108- // allMovies.innerHTML = "";
109- // imagesMovies.map((image) => allMovies.appendChild(image));
110-
11194 _forceRender ( searchMoviesByDirector ) ;
11295} ;
113-
96+ //Orden de películas
11497export const sortByYear = ( ) => {
11598 const value = select . options [ select . selectedIndex ] . value ;
11699
@@ -130,7 +113,7 @@ export const sortByYear = () => {
130113 // }
131114
132115 if ( value === "year" ) {
133- films . sort ( ( a , b ) => ( a . release_date ) . localeCompare ( b . release_date ) ) ;
116+ films . sort ( ( a , b ) => a . release_date . localeCompare ( b . release_date ) ) ;
134117 }
135118
136119 if ( value === "rt-score" ) {
0 commit comments