From b2fa2c0f1e7e9b365cc551bd5693c3084d673887 Mon Sep 17 00:00:00 2001 From: James Barnsley Date: Sun, 13 Nov 2016 11:32:21 +1300 Subject: [PATCH] Re-assessing playing state for tltracklist on tltrack_changed --- src/js/services/ui/reducer.js | 90 +++++++++++++++++++---------------- 1 file changed, 49 insertions(+), 41 deletions(-) diff --git a/src/js/services/ui/reducer.js b/src/js/services/ui/reducer.js index c4c54b9d..67804e9f 100755 --- a/src/js/services/ui/reducer.js +++ b/src/js/services/ui/reducer.js @@ -66,6 +66,55 @@ export default function reducer(ui = {}, action){ + /** + * Current track and tracklist + **/ + + case 'MOPIDY_TLTRACKS': + if( !action.data ) return ui + + var tracklist = [] + for( var i = 0; i < action.data.length; i++ ){ + var track = Object.assign( + {}, + action.data[i].track, + { + tlid: action.data[i].tlid, + playing: ( ui.current_track && action.data[i].tlid == ui.current_track.tlid ) + }) + tracklist.push( track ) + } + + return Object.assign({}, ui, { current_tracklist: tracklist }); + + case 'SPOTIFY_TRACK_LOADED': + if( !action.data ) return ui + + var current_track = Object.assign({}, ui.current_track, action.data) + return Object.assign({}, ui, { current_track: current_track }); + + case 'MOPIDY_CURRENTTLTRACK': + if( !action.data ) return ui + + var current_tracklist = [] + Object.assign(current_tracklist, ui.current_tracklist) + + for( var i = 0; i < current_tracklist.length; i++ ){ + Object.assign( + current_tracklist[i], + { playing: ( current_tracklist[i].tlid == action.data.tlid ) } + ) + } + + var current_track = action.data.track + Object.assign(current_track, { tlid: action.data.tlid }) + + return Object.assign({}, ui, { + current_track: current_track + }); + + + /** * Albums **/ @@ -207,47 +256,6 @@ export default function reducer(ui = {}, action){ }); - - /** - * Current track and tracklist - **/ - - case 'MOPIDY_TLTRACKS': - if( !action.data ) return ui - - var tracklist = [] - for( var i = 0; i < action.data.length; i++ ){ - tracklist.push( Object.assign({}, action.data[i].track, { tlid: action.data[i].tlid }) ) - } - return Object.assign({}, ui, { current_tracklist: tracklist }); - - case 'SPOTIFY_TRACK_LOADED': - if( !action.data ) return ui - - var current_track = Object.assign({}, ui.current_track, action.data) - return Object.assign({}, ui, { current_track: current_track }); - - case 'MOPIDY_CURRENTTLTRACK': - if( !action.data ) return ui - - var current_tracklist = [] - Object.assign(current_tracklist, ui.current_tracklist) - - for( var i = 0; i < current_tracklist.length; i++ ){ - Object.assign( - current_tracklist[i], - { playing: ( current_tracklist[i].tlid == action.data.tlid ) } - ) - } - - var current_track = action.data.track - Object.assign(current_track, { tlid: action.data.tlid }) - - return Object.assign({}, ui, { - current_track: current_track - }); - - /** * Search results **/