Mergingcurrent_track and current_tracklist; Smarter reducers for UI
This commit is contained in:
@ -16,13 +16,6 @@ export function hideContextMenu(){
|
||||
}
|
||||
}
|
||||
|
||||
export function setCurrentTrack( track ){
|
||||
return {
|
||||
type: 'UI_CURRENT_TRACK',
|
||||
track: track
|
||||
}
|
||||
}
|
||||
|
||||
export function lazyLoading( start ){
|
||||
return {
|
||||
type: 'UI_LAZY_LOADING',
|
||||
|
||||
@ -19,11 +19,65 @@ export default function reducer(ui = {}, action){
|
||||
case 'UI_LAZY_LOADING':
|
||||
return Object.assign({}, ui, { lazy_loading: action.start });
|
||||
|
||||
case 'UI_CURRENT_TRACK':
|
||||
var current_track = ui.current_track;
|
||||
Object.assign({}, current_track, action.track );
|
||||
case 'SPOTIFY_ALBUM_LOADED':
|
||||
case 'MOPIDY_ALBUM_LOADED':
|
||||
return Object.assign({}, ui, { album: action.data });
|
||||
|
||||
case 'LASTFM_ALBUM_LOADED':
|
||||
//if( !action.data.image ) return ui
|
||||
var album = Object.assign(ui.album, { images: action.data.image })
|
||||
return Object.assign({}, ui, { album: album });
|
||||
|
||||
case 'SPOTIFY_ALBUM_LOADED_MORE':
|
||||
var album = ui.album
|
||||
Object.assign(album, { tracks: {
|
||||
href: action.data.href,
|
||||
next: action.data.next,
|
||||
previous: action.data.previous,
|
||||
items: [ ...ui.album.tracks.items, ...action.data.items ]
|
||||
}})
|
||||
return Object.assign({}, ui, { album: album });
|
||||
|
||||
|
||||
/**
|
||||
* 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
|
||||
});
|
||||
|
||||
default:
|
||||
return ui
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user