From 0841f82b6ada1da4549a54ca0fc9056415b44f1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dante=20Calder=C3=B3n?= Date: Mon, 10 Sep 2018 11:41:54 -0500 Subject: [PATCH 1/4] Remove log --- src/components/sideBar/miniCard/miniCard.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/components/sideBar/miniCard/miniCard.js b/src/components/sideBar/miniCard/miniCard.js index d0137f6..ea706a6 100644 --- a/src/components/sideBar/miniCard/miniCard.js +++ b/src/components/sideBar/miniCard/miniCard.js @@ -25,8 +25,6 @@ export default class MiniCard extends React.Component { videoTitle = videoTitle.substring(0, MAX_TITLE_LENGTH)+'... '; } - console.log(this.props.name); - return (
From d3ef9d0a463a3150bba0e4c80d5604af033f6805 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dante=20Calder=C3=B3n?= Date: Mon, 10 Sep 2018 15:05:43 -0500 Subject: [PATCH 2/4] Add play previous for R key --- src/actions/nowPlayingActions.js | 5 +++++ src/components/player/index.js | 9 +++++++++ src/containers/playerContainer.js | 8 +++++--- src/reducers/nowPlayingReducer.js | 14 ++++++++++++++ 4 files changed, 33 insertions(+), 3 deletions(-) diff --git a/src/actions/nowPlayingActions.js b/src/actions/nowPlayingActions.js index d365bb9..d648659 100644 --- a/src/actions/nowPlayingActions.js +++ b/src/actions/nowPlayingActions.js @@ -4,6 +4,7 @@ export const actionType = { songAdd: 'SONG_ADD', songRemove: 'SONG_REMOVE', playNext: 'PLAY_NEXT', + playPrev: 'PLAY_PREV', playedNext: 'PLAYED_NEXT', getSuggestions: 'GET_SUGGESTIONS' }; @@ -20,6 +21,10 @@ export function playNext() { return dispatch => dispatch({type: actionType.playNext}); } +export function playPrev() { + return dispatch => dispatch({ type: actionType.playPrev }) +} + export function playedNext(song) { return dispatch => dispatch({type: actionType.playedNext, song}); } diff --git a/src/components/player/index.js b/src/components/player/index.js index d5a8268..45c22f7 100644 --- a/src/components/player/index.js +++ b/src/components/player/index.js @@ -127,6 +127,15 @@ export default class Player extends React.Component { case keys.N: this.props.playNext(); break; + case keys.R: + let existPrevious = this.props.prevSongs.length >= 2; + if(this.audioElement.currentTime <= 5 && existPrevious) { + this.props.playPrev(); + this.props.playNext(); + } else { + this.audioElement.currentTime = 0; + } + break; case keys.F: let searchElement = document.getElementById('search-input'); if (searchElement) { diff --git a/src/containers/playerContainer.js b/src/containers/playerContainer.js index bfbdbde..d31f494 100644 --- a/src/containers/playerContainer.js +++ b/src/containers/playerContainer.js @@ -2,13 +2,14 @@ import {connect} from 'react-redux'; import Player from '../components/player'; import {playSong} from "../actions/playerActions"; -import {playNext, getSuggestions, playedNext} from "../actions/nowPlayingActions"; +import {playNext, getSuggestions, playedNext, playPrev} from "../actions/nowPlayingActions"; import {activatePlaylist, deactivatePlaylist} from '../actions/playerActions'; function mapStateToProps(state) { return { currentSong: state.player.currentSong, - playlistActive: state.player.playlistActive + playlistActive: state.player.playlistActive, + prevSongs: state.nowPlaying.previousSongs } } @@ -20,6 +21,7 @@ export default connect( getSuggestions: getSuggestions, playedNext: playedNext, activatePlaylist, - deactivatePlaylist + deactivatePlaylist, + playPrev } )(Player); diff --git a/src/reducers/nowPlayingReducer.js b/src/reducers/nowPlayingReducer.js index 8587bb8..70169d1 100644 --- a/src/reducers/nowPlayingReducer.js +++ b/src/reducers/nowPlayingReducer.js @@ -32,6 +32,20 @@ export function nowPlaying(state = initialState, action) { } return {...state, dispatchNext: false, previousSongs: prev}; + case actionType.playPrev: + if(state.previousSongs.length >= 2) { + let prev = state.previousSongs.slice(0, state.previousSongs.length - 2) + let songsToPlay = state.previousSongs.slice(state.previousSongs.length - 2) + let next = state.nextSongs.slice(0) + next.unshift(...songsToPlay) + return { + ...state, + previousSongs: prev, + nextSongs: next + } + } + return state; + case actionType.getSuggestions: if (action.suggestedSongs) { suggestions = removeDuplicateIn(removeDuplicateIn(action.suggestedSongs, state.previousSongs), state.nextSongs); From 01c2e5f1357b95447133feac8355b2e7e4de4e82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dante=20Calder=C3=B3n?= Date: Mon, 10 Sep 2018 15:18:59 -0500 Subject: [PATCH 3/4] Fix duplicate songs --- src/reducers/nowPlayingReducer.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/reducers/nowPlayingReducer.js b/src/reducers/nowPlayingReducer.js index 70169d1..c591960 100644 --- a/src/reducers/nowPlayingReducer.js +++ b/src/reducers/nowPlayingReducer.js @@ -37,6 +37,7 @@ export function nowPlaying(state = initialState, action) { let prev = state.previousSongs.slice(0, state.previousSongs.length - 2) let songsToPlay = state.previousSongs.slice(state.previousSongs.length - 2) let next = state.nextSongs.slice(0) + next = next.filter(item => !songInArray(item, songsToPlay)); next.unshift(...songsToPlay) return { ...state, From 25399a9f2966a3b40495af2282c75103d53f08ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dante=20Calder=C3=B3n?= Date: Mon, 10 Sep 2018 15:24:39 -0500 Subject: [PATCH 4/4] Change key to play previous song[P] --- src/components/player/index.js | 2 +- src/constants.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/components/player/index.js b/src/components/player/index.js index 45c22f7..0547474 100644 --- a/src/components/player/index.js +++ b/src/components/player/index.js @@ -127,7 +127,7 @@ export default class Player extends React.Component { case keys.N: this.props.playNext(); break; - case keys.R: + case keys.P: let existPrevious = this.props.prevSongs.length >= 2; if(this.audioElement.currentTime <= 5 && existPrevious) { this.props.playPrev(); diff --git a/src/constants.js b/src/constants.js index 6a3380e..3d588a9 100644 --- a/src/constants.js +++ b/src/constants.js @@ -8,5 +8,6 @@ export const keys = { UP_ARROW: 38, RIGHT_ARROW: 39, DOWN_ARROW: 40, - ENTER: 13 + ENTER: 13, + P: 80 }