refactored reducers

This commit is contained in:
andres alcocer
2021-10-08 18:39:42 -04:00
parent 09318b3134
commit 4a82c29a7b
6 changed files with 11 additions and 50 deletions

View File

@@ -7,7 +7,7 @@ import Footer from './Footer'
import DisplayMovieRow from './DisplayMovieRow' import DisplayMovieRow from './DisplayMovieRow'
const MainContent = ({ selectMovieHandler }) => { const MainContent = ({ selectMovieHandler }) => {
const headerMovie = useSelector((state) => state.headerMovie) const { movieDetails } = useSelector((state) => state.movieDetails)
const netflixOriginals = useSelector((state) => state.netflixOriginals) const netflixOriginals = useSelector((state) => state.netflixOriginals)
const trending = useSelector((state) => state.trending) const trending = useSelector((state) => state.trending)
const topRated = useSelector((state) => state.topRated) const topRated = useSelector((state) => state.topRated)
@@ -20,7 +20,7 @@ const MainContent = ({ selectMovieHandler }) => {
const dispatch = useDispatch() const dispatch = useDispatch()
useEffect(() => { useEffect(() => {
dispatch(movieActions.fetchHeaderMovie()) dispatch(movieActions.fetchMovieDetails('tv', '63351'))
dispatch(movieActions.fetchNetflixOriginals()) dispatch(movieActions.fetchNetflixOriginals())
dispatch(movieActions.fetchTrending()) dispatch(movieActions.fetchTrending())
dispatch(movieActions.fetchTopRated()) dispatch(movieActions.fetchTopRated())
@@ -33,7 +33,7 @@ const MainContent = ({ selectMovieHandler }) => {
return ( return (
<div className='container'> <div className='container'>
<Header movie={headerMovie} /> <Header movie={movieDetails} />
<div className='movieShowcase'> <div className='movieShowcase'>
<DisplayMovieRow <DisplayMovieRow
isNetflixMovies={true} isNetflixMovies={true}

View File

@@ -1,11 +0,0 @@
import React from 'react'
const Movie = ({ movieDetails, movieImage }) => (
<div className='movie'>
<div onClick={movieDetails} className='movie__column-poster'>
<img src={movieImage} alt='' className='movie__poster' />
</div>
</div>
)
export default Movie

View File

@@ -6,7 +6,6 @@ import { useDebounce } from '../hooks/useDebounce'
import * as movieActions from '../store/actions' import * as movieActions from '../store/actions'
import Modal from '../components/UI/Modal' import Modal from '../components/UI/Modal'
import ModalMovieDetails from '../components/ModalMovieDetails' import ModalMovieDetails from '../components/ModalMovieDetails'
import Movie from '../components/Movie'
// A custom hook that builds on useLocation to parse // A custom hook that builds on useLocation to parse
// the query string for you. // the query string for you.
@@ -46,12 +45,14 @@ const Search = () => {
const movieImageUrl = const movieImageUrl =
'https://image.tmdb.org/t/p/w500' + movie.poster_path 'https://image.tmdb.org/t/p/w500' + movie.poster_path
return ( return (
<Movie <div className='movie'>
movieDetails={() => onSelectMovieHandler(movie)} <div
key={movie.id} onClick={() => onSelectMovieHandler(movie)}
movieImage={movieImageUrl} className='movie__column-poster'
movie={movie} >
/> <img src={movieImageUrl} alt='' className='movie__poster' />
</div>
</div>
) )
} }
})} })}

View File

@@ -1,6 +1,5 @@
import axios from '../../axios-movies' import axios from '../../axios-movies'
export const FETCH_HEADER_MOVIE = 'FETCH_HEADER_MOVIE'
export const FETCH_TRENDING = 'FETCH_TRENDING' export const FETCH_TRENDING = 'FETCH_TRENDING'
export const FETCH_NETFLIX_ORIGINALS = 'FETCH_NETFLIX_ORIGINALS' export const FETCH_NETFLIX_ORIGINALS = 'FETCH_NETFLIX_ORIGINALS'
export const FETCH_TOP_RATED = 'FETCH_TOP_RATED' export const FETCH_TOP_RATED = 'FETCH_TOP_RATED'
@@ -57,21 +56,6 @@ export const fetchSearchMovie = (searchTerm) => {
} }
} }
export const fetchHeaderMovie = () => {
const movieId = 63351
return async (dispatch) => {
try {
const request = await axios.get(
`tv/${movieId}?api_key=${process.env.API_KEY}`
)
dispatch({ type: FETCH_HEADER_MOVIE, payload: request })
} catch (error) {
console.log('error', error)
}
}
}
export const fetchNetflixOriginals = () => { export const fetchNetflixOriginals = () => {
return async (dispatch) => { return async (dispatch) => {
try { try {

View File

@@ -7,7 +7,6 @@ import ComedyMoviesReducer from './reducerComedyMovies'
import HorrorMoviesReducer from './reducerHorrorMovies' import HorrorMoviesReducer from './reducerHorrorMovies'
import RomanceMoviesReducer from './reducerRomanceMovies' import RomanceMoviesReducer from './reducerRomanceMovies'
import DocumentaryReducer from './reducerDocumentary' import DocumentaryReducer from './reducerDocumentary'
import HeaderMovieReducer from './reducerHeaderMovie'
import SearchMovieReducer from './reducerSearchMovie' import SearchMovieReducer from './reducerSearchMovie'
import MovieDetailsReducer from './reducerMovieDetails' import MovieDetailsReducer from './reducerMovieDetails'
@@ -20,7 +19,6 @@ const rootReducer = combineReducers({
horror: HorrorMoviesReducer, horror: HorrorMoviesReducer,
romance: RomanceMoviesReducer, romance: RomanceMoviesReducer,
documentary: DocumentaryReducer, documentary: DocumentaryReducer,
headerMovie: HeaderMovieReducer,
searchMovie: SearchMovieReducer, searchMovie: SearchMovieReducer,
movieDetails: MovieDetailsReducer, movieDetails: MovieDetailsReducer,
}) })

View File

@@ -1,11 +0,0 @@
import { FETCH_HEADER_MOVIE } from '../actions/index'
export default function (state = {}, action) {
switch (action.type) {
case FETCH_HEADER_MOVIE:
const data = action.payload.data
return { ...state, ...data }
default:
return state
}
}