diff --git a/src/containers/ActionMovies.js b/src/containers/ActionMovies.js
deleted file mode 100644
index 2809993..0000000
--- a/src/containers/ActionMovies.js
+++ /dev/null
@@ -1,38 +0,0 @@
-import React, { Component } from 'react';
-import { bindActionCreators } from 'redux';
-import { connect } from 'react-redux';
-
-import { fetchActionMovies } from '../store/actions/index';
-import { getMovieRows } from '../getMovie';
-
-class ActionMovies extends Component {
- componentWillMount() {
- this.props.fetchActionMovies();
- }
-
- render() {
- let movies;
- // Call getMoviesRows function only when we get the data back
- // from the API through redux
- if (this.props.actionMovies.data) {
- const url = `/discover/movie?api_key=${process.env.API_KEY}&with_genres=28`;
- movies = getMovieRows(this.props.actionMovies.data, url);
- }
- return (
- <>
-
Action Movies
- {movies}
- >
- );
- }
-}
-
-const mapStateToProps = (state) => {
- return { actionMovies: state.action };
-};
-
-const mapDispatchToProps = (dispatch) => {
- return bindActionCreators({ fetchActionMovies }, dispatch);
-};
-
-export default connect(mapStateToProps, mapDispatchToProps)(ActionMovies);
diff --git a/src/containers/ComedyMovies.js b/src/containers/ComedyMovies.js
deleted file mode 100644
index 8290e45..0000000
--- a/src/containers/ComedyMovies.js
+++ /dev/null
@@ -1,38 +0,0 @@
-import React, { Component } from 'react';
-import { bindActionCreators } from 'redux';
-import { connect } from 'react-redux';
-
-import { getMovieRows } from '../getMovie';
-import { fetchComedyMovies } from '../store/actions/index';
-
-class ComedyMovies extends Component {
- componentWillMount() {
- this.props.fetchComedyMovies();
- }
-
- render() {
- let movies;
- // Call getMoviesRows function only when we get the data back
- // from the API through redux
- if (this.props.movies.data) {
- const url = `/discover/tv?api_key=${process.env.API_KEY}&with_genres=35`;
- movies = getMovieRows(this.props.movies.data, url);
- }
- return (
- <>
- Comedy Movies
- {movies}
- >
- );
- }
-}
-
-const mapStateToProps = (state) => {
- return { movies: state.comedy };
-};
-
-const mapDispatchToProps = (dispatch) => {
- return bindActionCreators({ fetchComedyMovies }, dispatch);
-};
-
-export default connect(mapStateToProps, mapDispatchToProps)(ComedyMovies);
diff --git a/src/containers/DisplayMovieRow.js b/src/containers/DisplayMovieRow.js
index 685a548..6cd3a41 100644
--- a/src/containers/DisplayMovieRow.js
+++ b/src/containers/DisplayMovieRow.js
@@ -1,9 +1,7 @@
import React from 'react';
-// import MovieGenre from './components/MovieGenre';
import MovieGenre from '../components/MovieGenre';
const getMovieRows = (movies, url) => {
- console.log('getMovieRow() ', movies, url);
const movieRow = movies.map((movie) => {
let movieImageUrl =
'https://image.tmdb.org/t/p/w500/' + movie.backdrop_path;
@@ -31,7 +29,6 @@ const getMovieRows = (movies, url) => {
};
export default function DisplayMovieRow(props) {
- console.log('DisplayMovieRow.render()', props.movies);
let movies = getMovieRows(props.movies, props.url);
return (
<>
diff --git a/src/containers/Documentaries.js b/src/containers/Documentaries.js
deleted file mode 100644
index 4f1f82b..0000000
--- a/src/containers/Documentaries.js
+++ /dev/null
@@ -1,38 +0,0 @@
-import React, { Component } from 'react';
-import { bindActionCreators } from 'redux';
-import { connect } from 'react-redux';
-
-import { getMovieRows } from '../getMovie';
-import { fetchDocumentaries } from '../store/actions/index';
-
-class Documentaries extends Component {
- componentWillMount() {
- this.props.fetchDocumentaries();
- }
-
- render() {
- let movies;
- // Call getMoviesRows function only when we get the data back
- // from the API through redux
- if (this.props.movies.data) {
- const url = `/discover/tv?api_key=${process.env.API_KEY}&with_genres=99`;
- movies = getMovieRows(this.props.movies.data, url);
- }
- return (
- <>
- Documentaries
- {movies}
- >
- );
- }
-}
-
-const mapStateToProps = (state) => {
- return { movies: state.documentary };
-};
-
-const mapDispatchToProps = (dispatch) => {
- return bindActionCreators({ fetchDocumentaries }, dispatch);
-};
-
-export default connect(mapStateToProps, mapDispatchToProps)(Documentaries);
diff --git a/src/containers/HorrorMovies.js b/src/containers/HorrorMovies.js
deleted file mode 100644
index 164a7fb..0000000
--- a/src/containers/HorrorMovies.js
+++ /dev/null
@@ -1,38 +0,0 @@
-import React, { Component } from 'react';
-import { bindActionCreators } from 'redux';
-import { connect } from 'react-redux';
-
-import { getMovieRows } from '../getMovie';
-import { fetchHorrorMovies } from '../store/actions/index';
-
-class HorrorMovies extends Component {
- componentWillMount() {
- this.props.fetchHorrorMovies();
- }
-
- render() {
- let movies;
- // Call getMoviesRows function only when we get the data back
- // from the API through redux
- if (this.props.movies.data) {
- const url = `/discover/tv?api_key=${process.env.API_KEY}&with_genres=27`;
- movies = getMovieRows(this.props.movies.data, url);
- }
- return (
- <>
- Horror Movies
- {movies}
- >
- );
- }
-}
-
-const mapStateToProps = (state) => {
- return { movies: state.horror };
-};
-
-const mapDispatchToProps = (dispatch) => {
- return bindActionCreators({ fetchHorrorMovies }, dispatch);
-};
-
-export default connect(mapStateToProps, mapDispatchToProps)(HorrorMovies);
diff --git a/src/containers/MainContent.js b/src/containers/MainContent.js
index fe90ad7..b4062c0 100644
--- a/src/containers/MainContent.js
+++ b/src/containers/MainContent.js
@@ -1,17 +1,19 @@
import React, { Component } from 'react';
import axios from 'axios';
-import Header from '../components/Header';
-import Footer from '../components/Footer';
import { bindActionCreators } from 'redux';
import { connect } from 'react-redux';
-import TrendingMovies from './TrendingMovies';
-import NetflixOriginals from './NetflixOriginals';
-import { fetchNetflixOriginals } from '../store/actions/index';
-import TopRated from './TopRated';
-import ActionMovies from './ActionMovies';
-import ComedyMovies from './ComedyMovies';
-import Documentaries from './Documentaries';
+import Header from '../components/Header';
+import Footer from '../components/Footer';
+import {
+ fetchNetflixOriginals,
+ fetchTrending,
+ fetchTopRated,
+ fetchActionMovies,
+ fetchComedyMovies,
+ fetchDocumentaries,
+ fetchHorrorMovies
+} from '../store/actions/index';
import DisplayMovieRow from './DisplayMovieRow';
@@ -24,21 +26,76 @@ class MainContent extends Component {
{
title: 'Netflix Originals',
url: `/discover/tv?api_key=${process.env.API_KEY}&with_networks=213`,
- movies: []
- }
+ movies: [],
+ },
+ {
+ title: 'Trending Now',
+ url: `/trending/all/week?api_key=${process.env.API_KEY}&language=en-US`,
+ movies: [],
+ },
+ {
+ title: 'Top Rated',
+ url: `/movie/top_rated?api_key=${process.env.API_KEY}&language=en-US`,
+ movies: [],
+ },
+ {
+ title: 'Action Movies',
+ url: `/discover/movie?api_key=${process.env.API_KEY}&with_genres=28`,
+ movies: [],
+ },
+ {
+ title: 'Comedy Movies',
+ url: `/discover/tv?api_key=${process.env.API_KEY}&with_genres=35`,
+ movies: [],
+ },
+ {
+ title: 'Horror Movies',
+ url: `/discover/tv?api_key=${process.env.API_KEY}&with_genres=27`,
+ movies: [],
+ },
+ {
+ title: 'Documentaries',
+ url: `/discover/tv?api_key=${process.env.API_KEY}&with_genres=99`,
+ movies: [],
+ },
],
- netflixOriginals: []
};
componentDidMount = async () => {
await this.getMovie();
await this.props.fetchNetflixOriginals();
- this.state.movieInfo.forEach((movie) => {
+ await this.props.fetchTrending();
+ await this.props.fetchTopRated();
+ await this.props.fetchActionMovies();
+ await this.props.fetchComedyMovies();
+ await this.props.fetchDocumentaries();
+ await this.props.fetchHorrorMovies();
+
+ const newMoviesArray = this.state.movieInfo.map((movie) => {
if (movie.title === 'Netflix Originals') {
movie.movies.push(...this.props.netflixOriginals.data)
}
+ if (movie.title === 'Trending Now') {
+ movie.movies.push(...this.props.trending.data)
+ }
+ if (movie.title === 'Top Rated') {
+ movie.movies.push(...this.props.topRated.data)
+ }
+ if (movie.title === 'Action Movies') {
+ movie.movies.push(...this.props.actionMovies.data)
+ }
+ if (movie.title === 'Comedy Movies') {
+ movie.movies.push(...this.props.comedyMovies.data)
+ }
+ if (movie.title === 'Documentaries') {
+ movie.movies.push(...this.props.documentaries.data)
+ }
+ if (movie.title === 'Horror Movies') {
+ movie.movies.push(...this.props.horrorMovies.data)
+ }
+ return movie
})
- // await this.setState({ movieInfo: this.props.netflixOriginals.data })
+ await this.setState({ movieInfo: newMoviesArray })
};
getMovie = () => {
@@ -58,32 +115,23 @@ class MainContent extends Component {
};
render() {
- // console.log('render().state', this.state)
return (
{
this.state.movieInfo.map((info) => {
- // console.log('render()----', info)
- return (
-
)
+ if (info.movies.length > 0) {
+ return (
+
)
+ }
})
}
- {/*
*/}
- {/*
*/}
-
-
-
-
-
@@ -92,15 +140,30 @@ class MainContent extends Component {
}
const mapStateToProps = (state) => {
- return { netflixOriginals: state.netflixOriginals };
+ return {
+ netflixOriginals: state.netflixOriginals,
+ trending: state.trending,
+ topRated: state.topRated,
+ actionMovies: state.action,
+ comedyMovies: state.comedy,
+ documentaries: state.documentary,
+ horrorMovies: state.horror
+ };
};
const mapDispatchToProps = (dispatch) => {
- return bindActionCreators({ fetchNetflixOriginals }, dispatch);
+ return bindActionCreators({
+ fetchNetflixOriginals,
+ fetchTrending,
+ fetchTopRated,
+ fetchActionMovies,
+ fetchComedyMovies,
+ fetchDocumentaries,
+ fetchHorrorMovies
+ }, dispatch);
}
export default connect(
mapStateToProps,
mapDispatchToProps
-)
- (MainContent);
\ No newline at end of file
+)(MainContent);
\ No newline at end of file
diff --git a/src/containers/NetflixOriginals.js b/src/containers/NetflixOriginals.js
deleted file mode 100644
index cc7786e..0000000
--- a/src/containers/NetflixOriginals.js
+++ /dev/null
@@ -1,58 +0,0 @@
-import React, { Component } from 'react';
-import { bindActionCreators } from 'redux';
-import { connect } from 'react-redux';
-import OwlCarousel from 'react-owl-carousel2';
-
-import { getMovieRows } from '../getMovie';
-import { fetchNetflixOriginals } from '../store/actions/index';
-
-const options = {
- items: 1,
- nav: true,
- rewind: true,
- autoplay: true,
-};
-
-const events = {
- onDragged: [],
- onChanged: [],
-};
-
-class NetflixOriginals extends Component {
- componentWillMount() {
- this.props.fetchNetflixOriginals();
- }
-
- render() {
- let movies;
- // Call getMoviesRows function only when we get the data back
- // from the API through redux
- if (this.props.movies.data) {
- const url = `/discover/tv?api_key=${process.env.API_KEY}&with_networks=213`;
- movies = getMovieRows(this.props.movies.data, url);
- }
- return (
- <>
- NETFLIX ORIGINALS
- {movies}
- {/*
- {movies}
- */}
- >
- );
- }
-}
-
-const mapStateToProps = (state) => {
- return { movies: state.netflixOriginals };
-};
-
-const mapDispatchToProps = (dispatch) => {
- return bindActionCreators({ fetchNetflixOriginals }, dispatch);
-};
-
-export default connect(mapStateToProps, mapDispatchToProps)(NetflixOriginals);
diff --git a/src/containers/RomanceMovies.js b/src/containers/RomanceMovies.js
deleted file mode 100644
index e230697..0000000
--- a/src/containers/RomanceMovies.js
+++ /dev/null
@@ -1,39 +0,0 @@
-import React, { Component } from 'react';
-import { bindActionCreators } from 'redux';
-import { connect } from 'react-redux';
-
-import { getMovieRows } from '../getMovie';
-import { fetchRomanceMovies } from '../store/actions/index';
-
-class RomanceMovies extends Component {
- componentWillMount() {
- this.props.fetchRomanceMovies();
- }
-
- render() {
- let movies;
- // Call getMoviesRows function only when we get the data back
- // from the API through redux
- if (this.props.movies.data) {
- const url = `/discover/tv?api_key=${process.env.API_KEY}&with_genres=10749`;
- movies = getMovieRows(this.props.movies.data, url);
- }
-
- return (
- <>
- Romance Movies
- {movies}
- >
- );
- }
-}
-
-const mapStateToProps = (state) => {
- return { movies: state.romance };
-};
-
-const mapDispatchToProps = (dispatch) => {
- return bindActionCreators({ fetchRomanceMovies }, dispatch);
-};
-
-export default connect(mapStateToProps, mapDispatchToProps)(RomanceMovies);
diff --git a/src/containers/TopRated.js b/src/containers/TopRated.js
deleted file mode 100644
index b2d9c50..0000000
--- a/src/containers/TopRated.js
+++ /dev/null
@@ -1,38 +0,0 @@
-import React, { Component } from 'react';
-import { bindActionCreators } from 'redux';
-import { connect } from 'react-redux';
-
-import { fetchTopRated } from '../store/actions/index';
-import { getMovieRows } from '../getMovie';
-
-class TopRated extends Component {
- componentWillMount() {
- this.props.fetchTopRated();
- }
-
- render() {
- let movies;
- // Call getMoviesRows function only when we get the data back
- // from the API through redux
- if (this.props.topRated.data) {
- const url = `/movie/top_rated?api_key=${process.env.API_KEY}&language=en-US`;
- movies = getMovieRows(this.props.topRated.data, url);
- }
- return (
- <>
- Top Rated
- {movies}
- >
- );
- }
-}
-
-const mapStateToProps = (state) => {
- return { topRated: state.topRated };
-};
-
-const mapDispatchToProps = (dispatch) => {
- return bindActionCreators({ fetchTopRated }, dispatch);
-};
-
-export default connect(mapStateToProps, mapDispatchToProps)(TopRated);
diff --git a/src/containers/TrendingMovies.js b/src/containers/TrendingMovies.js
deleted file mode 100644
index 7c14cd1..0000000
--- a/src/containers/TrendingMovies.js
+++ /dev/null
@@ -1,38 +0,0 @@
-import React, { Component } from 'react';
-import { bindActionCreators } from 'redux';
-import { connect } from 'react-redux';
-
-import { fetchTrending } from '../store/actions/index';
-import { getMovieRows } from '../getMovie';
-
-class TrendingMovies extends Component {
- componentWillMount() {
- this.props.fetchTrending();
- }
-
- render() {
- let movies;
- // Call getMoviesRows function only when we get the data back
- // from the API through redux
- if (this.props.trending.data) {
- const url = `/trending/all/week?api_key=${process.env.API_KEY}&language=en-US`;
- movies = getMovieRows(this.props.trending.data, url);
- }
- return (
- <>
- Trending Now
- {movies}
- >
- );
- }
-}
-
-const mapStateToProps = (state) => {
- return { trending: state.trending };
-};
-
-const mapDispatchToProps = (dispatch) => {
- return bindActionCreators({ fetchTrending }, dispatch);
-};
-
-export default connect(mapStateToProps, mapDispatchToProps)(TrendingMovies);