From df376ab999bc4e409f97244150a17da2b0ed2ef8 Mon Sep 17 00:00:00 2001 From: DJ1 Date: Sat, 1 Jul 2023 10:33:41 -0400 Subject: [PATCH 01/15] index.js complete --- src/index.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index 227c0531b..c52c2933b 100644 --- a/src/index.js +++ b/src/index.js @@ -9,9 +9,13 @@ import App from './components/App'; import { BrowserRouter as Router } from 'react-router-dom'; import './index.css'; +const store = createstore(reducer); + ReactDOM.render( + - , + + , document.getElementById('root') ); From 5d9b862bdb3fc1f040753379999dafc129c2b19c Mon Sep 17 00:00:00 2001 From: DJ1 Date: Sat, 1 Jul 2023 10:37:59 -0400 Subject: [PATCH 02/15] mnovieReducer.js complete --- src/reducers/movieReducer.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/reducers/movieReducer.js b/src/reducers/movieReducer.js index 16f33bcdd..5c061e564 100644 --- a/src/reducers/movieReducer.js +++ b/src/reducers/movieReducer.js @@ -6,7 +6,7 @@ const initialState = { appTitle: "IMDB Movie Database" } -const reducer = (state, action) => { +const reducer = (state = initialState, action) => { switch(action.type) { case DELETE_MOVIE: return { From c4dbb6300d171d57b3d00eae0e8e2d04355101c3 Mon Sep 17 00:00:00 2001 From: DJ1 Date: Sat, 1 Jul 2023 10:59:29 -0400 Subject: [PATCH 03/15] movieReducer.js & MovieList.js complete --- src/components/MovieList.js | 12 ++++++++---- src/index.js | 4 ++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/components/MovieList.js b/src/components/MovieList.js index 268c78099..05eb229da 100644 --- a/src/components/MovieList.js +++ b/src/components/MovieList.js @@ -1,10 +1,10 @@ import React from 'react'; - +import {connect} from 'react-redux'; import MovieListItem from './MovieListItem'; import MovieFooter from './MovieFooter'; const MovieList = (props)=> { - const movies = []; + const { movies }= props; return (
@@ -30,5 +30,9 @@ const MovieList = (props)=> {
); } - -export default MovieList; \ No newline at end of file +const mapStateToProps = (state) => { + return({ + movies:state.movies + }) +} +export default connect(mapStateToProps)(MovieList); \ No newline at end of file diff --git a/src/index.js b/src/index.js index c52c2933b..117a2d754 100644 --- a/src/index.js +++ b/src/index.js @@ -9,10 +9,10 @@ import App from './components/App'; import { BrowserRouter as Router } from 'react-router-dom'; import './index.css'; -const store = createstore(reducer); +const store = createStore(reducer); ReactDOM.render( - + From ba0611c9be2db3b55551df323db5c1f5dfe3619e Mon Sep 17 00:00:00 2001 From: DJ1 Date: Sat, 1 Jul 2023 11:09:43 -0400 Subject: [PATCH 04/15] Movies.js complete --- src/components/Movie.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/components/Movie.js b/src/components/Movie.js index 373201e56..dd14cd69e 100644 --- a/src/components/Movie.js +++ b/src/components/Movie.js @@ -1,11 +1,12 @@ import React from 'react'; +import { connect } from 'react-redux'; import { useParams, useHistory } from 'react-router-dom'; const Movie = (props) => { const { id } = useParams(); const { push } = useHistory(); - const movies = []; + const { movies } = props; const movie = movies.find(movie=>movie.id===Number(id)); return(
@@ -46,5 +47,9 @@ const Movie = (props) => {
); } - -export default Movie; \ No newline at end of file +const mapStateToProps = (state) => { + return({ + movies:state.movies + }); +} +export default connect(mapStateToProps)(Movie); \ No newline at end of file From 0c7621cfd215a63cca8266d20201ae2be3da4761 Mon Sep 17 00:00:00 2001 From: DJ1 Date: Sat, 1 Jul 2023 11:17:57 -0400 Subject: [PATCH 05/15] MovieHeader.js complete --- src/components/MovieHeader.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/components/MovieHeader.js b/src/components/MovieHeader.js index e3443e5fb..ca512ea4d 100644 --- a/src/components/MovieHeader.js +++ b/src/components/MovieHeader.js @@ -1,8 +1,9 @@ import React from 'react'; +import { connect } from 'react-redux'; import { Link } from 'react-router-dom'; const MovieHeader = (props) => { - const appTitle = ""; + const { appTitle } = props; const displayFavorites = true; return(
@@ -18,5 +19,9 @@ const MovieHeader = (props) => {
); } - -export default MovieHeader; \ No newline at end of file +const mapStateToProps = (state) => { + return({ + appTitle: state.appTitle + }); +} +export default connect(mapStateToProps)(MovieHeader); \ No newline at end of file From ec0ad368e692e7be7471c27821f754aaaee603ae Mon Sep 17 00:00:00 2001 From: DJ1 Date: Sat, 1 Jul 2023 11:21:36 -0400 Subject: [PATCH 06/15] moviesReducer.js --- src/reducers/movieReducer.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/reducers/movieReducer.js b/src/reducers/movieReducer.js index 5c061e564..84df2de30 100644 --- a/src/reducers/movieReducer.js +++ b/src/reducers/movieReducer.js @@ -10,6 +10,7 @@ const reducer = (state = initialState, action) => { switch(action.type) { case DELETE_MOVIE: return { + ...state, movies: state.movies.filter(item=>(action.payload !== item.id)) } default: From c1ad38f849a19c42d4203f10c5ee91892b3d0614 Mon Sep 17 00:00:00 2001 From: DJ1 Date: Sat, 1 Jul 2023 11:43:15 -0400 Subject: [PATCH 07/15] Movie.js complete --- src/components/Movie.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/components/Movie.js b/src/components/Movie.js index dd14cd69e..ac8bc45ce 100644 --- a/src/components/Movie.js +++ b/src/components/Movie.js @@ -1,14 +1,18 @@ import React from 'react'; import { connect } from 'react-redux'; import { useParams, useHistory } from 'react-router-dom'; +import { deleteMovie } from './../actions/movieActions'; const Movie = (props) => { const { id } = useParams(); const { push } = useHistory(); - const { movies } = props; + const { movies, deleteMovie } = props; const movie = movies.find(movie=>movie.id===Number(id)); - + const handleDeleteClick = () => { + deleteMovie(movie.id); + push('/movies'); + } return(
@@ -39,7 +43,7 @@ const Movie = (props) => {
Favorite - +
@@ -52,4 +56,4 @@ const mapStateToProps = (state) => { movies:state.movies }); } -export default connect(mapStateToProps)(Movie); \ No newline at end of file +export default connect(mapStateToProps, {deleteMovie})(Movie); \ No newline at end of file From 4237cff1fbaed6b7644e7c81db4332f3d3301891 Mon Sep 17 00:00:00 2001 From: DJ1 Date: Sat, 1 Jul 2023 18:59:38 -0400 Subject: [PATCH 08/15] movisReducer.js & movieActions.js complete --- src/actions/movieActions.js | 7 ++++++- src/reducers/movieReducer.js | 9 +++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/actions/movieActions.js b/src/actions/movieActions.js index 3fb8c9ddb..05d3ac1a5 100644 --- a/src/actions/movieActions.js +++ b/src/actions/movieActions.js @@ -1,5 +1,10 @@ export const DELETE_MOVIE = "DELETE_MOVIE"; +export const ADD_MOVIE = "ADD_MOVIE"; export const deleteMovie = (id)=>{ return({type: DELETE_MOVIE, payload:id}); -} \ No newline at end of file +} + export const addMovie = (movie) => { + return({type: ADD_MOVIE, payload:movie}); + + } \ No newline at end of file diff --git a/src/reducers/movieReducer.js b/src/reducers/movieReducer.js index 84df2de30..e8e036a76 100644 --- a/src/reducers/movieReducer.js +++ b/src/reducers/movieReducer.js @@ -13,6 +13,15 @@ const reducer = (state = initialState, action) => { ...state, movies: state.movies.filter(item=>(action.payload !== item.id)) } + case ADD_MOVIE: + const newMovie = { + ...action.payload, + id: Date.now() + }; + return { + ...state, + movie: [...state.movies, newMovie] + } default: return state; } From 5d387561ba8c5984f351a5a7522ddafa7f371282 Mon Sep 17 00:00:00 2001 From: DJ1 Date: Sat, 1 Jul 2023 19:36:04 -0400 Subject: [PATCH 09/15] AddMovieForm.js complete --- src/components/AddMovieForm.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/components/AddMovieForm.js b/src/components/AddMovieForm.js index d8a4d768c..0053139fd 100644 --- a/src/components/AddMovieForm.js +++ b/src/components/AddMovieForm.js @@ -23,6 +23,9 @@ const AddMovieForm = (props) => { } const handleSubmit = (e) => { + e.preventDefault(); + props.addMovie(movie); + push('/movies'); } const { title, director, genre, metascore, description } = movie; @@ -67,4 +70,4 @@ const AddMovieForm = (props) => {
); } -export default AddMovieForm; \ No newline at end of file +export default connect(null, { addMovie })(AddMovieForm); \ No newline at end of file From 22577b6d13ac2c6e833019d0c3816aad6f5bbeaf Mon Sep 17 00:00:00 2001 From: DJ1 Date: Sat, 1 Jul 2023 19:43:38 -0400 Subject: [PATCH 10/15] favoritesReducer.js complete --- src/reducers/favoritesReducer.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/reducers/favoritesReducer.js diff --git a/src/reducers/favoritesReducer.js b/src/reducers/favoritesReducer.js new file mode 100644 index 000000000..659c1a3aa --- /dev/null +++ b/src/reducers/favoritesReducer.js @@ -0,0 +1,13 @@ +const initialState = { + favorites: [], + displayFavorites: true +} + +const reducer = (state = initialState, action) => { + switch(action.type) { + default: + return(state); + } +} + +export default reducer; \ No newline at end of file From a06deab83316d565e6523a6a8a16a8e4ec563e44 Mon Sep 17 00:00:00 2001 From: DJ1 Date: Sat, 1 Jul 2023 19:51:49 -0400 Subject: [PATCH 11/15] favoritesReducer.js & index.js complete --- src/reducers/favoritesReducer.js | 4 ++-- src/reducers/index.js | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/reducers/favoritesReducer.js b/src/reducers/favoritesReducer.js index 659c1a3aa..2a5222bdf 100644 --- a/src/reducers/favoritesReducer.js +++ b/src/reducers/favoritesReducer.js @@ -3,11 +3,11 @@ const initialState = { displayFavorites: true } -const reducer = (state = initialState, action) => { +const favoritesReducer = (state = initialState, action) => { switch(action.type) { default: return(state); } } -export default reducer; \ No newline at end of file +export default favoritesReducer; \ No newline at end of file diff --git a/src/reducers/index.js b/src/reducers/index.js index 6629609ca..854d6ffce 100644 --- a/src/reducers/index.js +++ b/src/reducers/index.js @@ -1,5 +1,9 @@ import { combineReducers } from 'redux'; import movieReducer from './movieReducer'; - -export default movieReducer; \ No newline at end of file +import favoritesReducer from './favoritesReducer'; +const rootReducer = combineReducers({ + movieReducer, + favoritesReducer +}); +export default rootReducer; \ No newline at end of file From a64482f2286bbde77c99b2ce1e51e4b6c75499d9 Mon Sep 17 00:00:00 2001 From: DJ1 Date: Sat, 1 Jul 2023 20:04:58 -0400 Subject: [PATCH 12/15] All 5 complete --- src/components/FavoriteMovieList.js | 12 ++++++++---- src/components/Movie.js | 2 +- src/components/MovieHeader.js | 2 +- src/components/MovieList.js | 2 +- src/reducers/favoritesReducer.js | 2 +- 5 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/components/FavoriteMovieList.js b/src/components/FavoriteMovieList.js index 54f4383fa..6aeff827c 100644 --- a/src/components/FavoriteMovieList.js +++ b/src/components/FavoriteMovieList.js @@ -1,10 +1,10 @@ import React from 'react'; - +import { connect } from 'react-redux'; import { Link } from 'react-router-dom'; const FavoriteMovieList = (props) => { - const favorites = []; + const { favorites } = props; return (
Favorite Movies
@@ -21,5 +21,9 @@ const FavoriteMovieList = (props) => {
); } - -export default FavoriteMovieList; \ No newline at end of file +const mapStateToProps = (state) => { + return{ + favorites: state.favoritesReducer.favorites + } +} +export default connect(mapStateToProps)(FavoriteMovieList); \ No newline at end of file diff --git a/src/components/Movie.js b/src/components/Movie.js index ac8bc45ce..e3bed7f5a 100644 --- a/src/components/Movie.js +++ b/src/components/Movie.js @@ -53,7 +53,7 @@ const Movie = (props) => { } const mapStateToProps = (state) => { return({ - movies:state.movies + movies:state.moviesReducer.movies }); } export default connect(mapStateToProps, {deleteMovie})(Movie); \ No newline at end of file diff --git a/src/components/MovieHeader.js b/src/components/MovieHeader.js index ca512ea4d..8264a94f3 100644 --- a/src/components/MovieHeader.js +++ b/src/components/MovieHeader.js @@ -21,7 +21,7 @@ const MovieHeader = (props) => { } const mapStateToProps = (state) => { return({ - appTitle: state.appTitle + appTitle: state.movieReducer.appTitle }); } export default connect(mapStateToProps)(MovieHeader); \ No newline at end of file diff --git a/src/components/MovieList.js b/src/components/MovieList.js index 05eb229da..93ef818d1 100644 --- a/src/components/MovieList.js +++ b/src/components/MovieList.js @@ -32,7 +32,7 @@ const MovieList = (props)=> { } const mapStateToProps = (state) => { return({ - movies:state.movies + movies:state.moviesReducer.movies }) } export default connect(mapStateToProps)(MovieList); \ No newline at end of file diff --git a/src/reducers/favoritesReducer.js b/src/reducers/favoritesReducer.js index 2a5222bdf..20c358982 100644 --- a/src/reducers/favoritesReducer.js +++ b/src/reducers/favoritesReducer.js @@ -1,5 +1,5 @@ const initialState = { - favorites: [], + favorites: [{title: "movie", id: 1}], displayFavorites: true } From 7d666a5c2f77183b7e5889a7dbdbb54d1444fc72 Mon Sep 17 00:00:00 2001 From: DJ1 Date: Sat, 1 Jul 2023 20:14:21 -0400 Subject: [PATCH 13/15] All 3 of these --- src/components/Movie.js | 3 ++- src/components/MovieHeader.js | 3 ++- src/reducers/favoritesReducer.js | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/components/Movie.js b/src/components/Movie.js index e3bed7f5a..28b78b57f 100644 --- a/src/components/Movie.js +++ b/src/components/Movie.js @@ -7,7 +7,7 @@ const Movie = (props) => { const { id } = useParams(); const { push } = useHistory(); - const { movies, deleteMovie } = props; + const { movies, displayFavorites, deleteMovie } = props; const movie = movies.find(movie=>movie.id===Number(id)); const handleDeleteClick = () => { deleteMovie(movie.id); @@ -53,6 +53,7 @@ const Movie = (props) => { } const mapStateToProps = (state) => { return({ + displayFavorites: state.favoritesReducer.displayFavorites, movies:state.moviesReducer.movies }); } diff --git a/src/components/MovieHeader.js b/src/components/MovieHeader.js index 8264a94f3..15cfb25da 100644 --- a/src/components/MovieHeader.js +++ b/src/components/MovieHeader.js @@ -4,7 +4,7 @@ import { Link } from 'react-router-dom'; const MovieHeader = (props) => { const { appTitle } = props; - const displayFavorites = true; + const { displayFavorites } = props; return(
@@ -21,6 +21,7 @@ const MovieHeader = (props) => { } const mapStateToProps = (state) => { return({ + displayFavorites: state.favoritesReducer.displayFavorites, appTitle: state.movieReducer.appTitle }); } diff --git a/src/reducers/favoritesReducer.js b/src/reducers/favoritesReducer.js index 20c358982..c56aee6ed 100644 --- a/src/reducers/favoritesReducer.js +++ b/src/reducers/favoritesReducer.js @@ -1,5 +1,5 @@ const initialState = { - favorites: [{title: "movie", id: 1}], + favorites: [], displayFavorites: true } From 627f528245e2f937cdb408eab86520514488f145 Mon Sep 17 00:00:00 2001 From: DJ1 Date: Sun, 2 Jul 2023 22:18:31 -0400 Subject: [PATCH 14/15] All 5 of these --- src/actions/favoriteActions.js | 12 ++++++++++++ src/components/App.js | 10 +++++++--- src/components/Movie.js | 4 ++-- src/components/MovieHeader.js | 11 +++++++---- src/components/MovieList.js | 2 +- src/reducers/favoritesReducer.js | 18 ++++++++++++++++++ 6 files changed, 47 insertions(+), 10 deletions(-) create mode 100644 src/actions/favoriteActions.js diff --git a/src/actions/favoriteActions.js b/src/actions/favoriteActions.js new file mode 100644 index 000000000..4fc89632e --- /dev/null +++ b/src/actions/favoriteActions.js @@ -0,0 +1,12 @@ +export const TOGGLE_FAVORITES = "TOGGLE_FAVORITES"; +export const ADD_FAVORITE = "ADD_FAVORITE"; +export const REMOVE_FAVORITE = "REMOVE_FAVORITE"; +export const toggleFavorites = () => { + return({type: TOGGLE_FAVORITES}); +} +export const addFavorite = (movie) => { + return({type: ADD_FAVORITE, payload:movie}); +} +export const removeFavorite = (id) => { + return({type: REMOVE_FAVORITE, payload:id}); +} \ No newline at end of file diff --git a/src/components/App.js b/src/components/App.js index d2d276d38..b3b42000d 100644 --- a/src/components/App.js +++ b/src/components/App.js @@ -12,7 +12,7 @@ import AddMovieForm from './AddMovieForm'; import FavoriteMovieList from './FavoriteMovieList'; const App = props => { - const displayFavorites = true; + const { displayFavorites } = props; return (
@@ -47,5 +47,9 @@ const App = props => {
); }; - -export default App; \ No newline at end of file +const mapStateToProps = (state) => { + return { + displayFavorites: state.favoritesReducer.displayFavorites + } +} +export default connect(mapStateToProps) (App); \ No newline at end of file diff --git a/src/components/Movie.js b/src/components/Movie.js index 28b78b57f..3f286d7b6 100644 --- a/src/components/Movie.js +++ b/src/components/Movie.js @@ -42,7 +42,7 @@ const Movie = (props) => {
- Favorite + {displayFavorites && Favorite}
@@ -54,7 +54,7 @@ const Movie = (props) => { const mapStateToProps = (state) => { return({ displayFavorites: state.favoritesReducer.displayFavorites, - movies:state.moviesReducer.movies + movies:state.movieReducer.movies }); } export default connect(mapStateToProps, {deleteMovie})(Movie); \ No newline at end of file diff --git a/src/components/MovieHeader.js b/src/components/MovieHeader.js index 15cfb25da..54f781c22 100644 --- a/src/components/MovieHeader.js +++ b/src/components/MovieHeader.js @@ -1,10 +1,13 @@ import React from 'react'; import { connect } from 'react-redux'; +import { toggleFavorites } from './../actions/favoritesActions'; import { Link } from 'react-router-dom'; const MovieHeader = (props) => { - const { appTitle } = props; - const { displayFavorites } = props; + const { appTitle, displayFavorites, toggleFavorites } = props; + const handleClick = () => { + toggleFavorites(); + } return(
@@ -12,7 +15,7 @@ const MovieHeader = (props) => {

{appTitle}

-
{ displayFavorites ? "Hide" : "Show"} Favorites
+
{ displayFavorites ? "Hide" : "Show"} Favorites
View All Movies Add New Movie
@@ -25,4 +28,4 @@ const mapStateToProps = (state) => { appTitle: state.movieReducer.appTitle }); } -export default connect(mapStateToProps)(MovieHeader); \ No newline at end of file +export default connect(mapStateToProps, {toggleFavorites})(MovieHeader); \ No newline at end of file diff --git a/src/components/MovieList.js b/src/components/MovieList.js index 93ef818d1..716c3ea3d 100644 --- a/src/components/MovieList.js +++ b/src/components/MovieList.js @@ -32,7 +32,7 @@ const MovieList = (props)=> { } const mapStateToProps = (state) => { return({ - movies:state.moviesReducer.movies + movies:state.movieReducer.movies }) } export default connect(mapStateToProps)(MovieList); \ No newline at end of file diff --git a/src/reducers/favoritesReducer.js b/src/reducers/favoritesReducer.js index c56aee6ed..bc7f8bf0b 100644 --- a/src/reducers/favoritesReducer.js +++ b/src/reducers/favoritesReducer.js @@ -1,3 +1,4 @@ +import { TOGGLE_FAVORITES, ADD_FAVORITE, REMOVE_FAVORITE } from './../actions/favoritesActions'; const initialState = { favorites: [], displayFavorites: true @@ -5,6 +6,23 @@ const initialState = { const favoritesReducer = (state = initialState, action) => { switch(action.type) { + case (TOGGLE_FAVORITES): { + return { + ...state, + displayFavorites: !state.displayFavorites + } + } + case(ADD_FAVORITE): { + return { + ...state, + favorites: [...state.favorites, action.payload] + } + } + case(REMOVE_FAVORITE): { + return { + fravorites: state.filter(item=>(item.id !== action.payload)) + } + } default: return(state); } From 16fe7528e742f8fed863ff677c44d85efed94039 Mon Sep 17 00:00:00 2001 From: DJ1 Date: Mon, 3 Jul 2023 10:35:12 -0400 Subject: [PATCH 15/15] All 4 complete --- src/components/FavoriteMovieList.js | 11 +++++++---- src/components/Movie.js | 12 ++++++++---- src/reducers/favoritesReducer.js | 2 +- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/components/FavoriteMovieList.js b/src/components/FavoriteMovieList.js index 6aeff827c..ff17cba3e 100644 --- a/src/components/FavoriteMovieList.js +++ b/src/components/FavoriteMovieList.js @@ -1,11 +1,14 @@ import React from 'react'; import { connect } from 'react-redux'; import { Link } from 'react-router-dom'; +import { removeFavorite } from './../actions/favoritesActions'; const FavoriteMovieList = (props) => { - const { favorites } = props; - + const { favorites, removeFavorite } = props; + const handleClick = (id) => { + removeFavorite(id); + } return (
Favorite Movies
{ @@ -13,7 +16,7 @@ const FavoriteMovieList = (props) => { return
{movie.title} - remove_circle + {handleClick(movie.id)}}>remove_circle
}) @@ -26,4 +29,4 @@ const mapStateToProps = (state) => { favorites: state.favoritesReducer.favorites } } -export default connect(mapStateToProps)(FavoriteMovieList); \ No newline at end of file +export default connect(mapStateToProps, { removeFavorite })(FavoriteMovieList); \ No newline at end of file diff --git a/src/components/Movie.js b/src/components/Movie.js index 3f286d7b6..b8b4c2fe5 100644 --- a/src/components/Movie.js +++ b/src/components/Movie.js @@ -2,17 +2,21 @@ import React from 'react'; import { connect } from 'react-redux'; import { useParams, useHistory } from 'react-router-dom'; import { deleteMovie } from './../actions/movieActions'; +import { addFavorite } from './../actions/favoritesActions'; const Movie = (props) => { const { id } = useParams(); const { push } = useHistory(); - const { movies, displayFavorites, deleteMovie } = props; + const { movies, displayFavorites, deleteMovie, addFavorite } = props; const movie = movies.find(movie=>movie.id===Number(id)); const handleDeleteClick = () => { deleteMovie(movie.id); push('/movies'); } + const handleFavoriteClick = () => { + addFavorite(movie); + } return(
@@ -42,7 +46,7 @@ const Movie = (props) => {
- {displayFavorites && Favorite} + {displayFavorites && Favorite}
@@ -53,8 +57,8 @@ const Movie = (props) => { } const mapStateToProps = (state) => { return({ - displayFavorites: state.favoritesReducer.displayFavorites, + displayFavorites: state.favoritesReducer.displayFavorites, movies:state.movieReducer.movies }); } -export default connect(mapStateToProps, {deleteMovie})(Movie); \ No newline at end of file +export default connect(mapStateToProps, {deleteMovie, addFavorite})(Movie); \ No newline at end of file diff --git a/src/reducers/favoritesReducer.js b/src/reducers/favoritesReducer.js index bc7f8bf0b..7c2d6308d 100644 --- a/src/reducers/favoritesReducer.js +++ b/src/reducers/favoritesReducer.js @@ -20,7 +20,7 @@ const favoritesReducer = (state = initialState, action) => { } case(REMOVE_FAVORITE): { return { - fravorites: state.filter(item=>(item.id !== action.payload)) + fravorites: state.favorites.filter(item=>(item.id !== action.payload)) } } default: