Files
Iris/src/js/services/spotify/reducer.js

57 lines
1.8 KiB
JavaScript
Raw Normal View History

export default function reducer(spotify = {}, action){
switch (action.type) {
case 'SPOTIFY_CONNECTING':
return Object.assign({}, spotify, { connected: false, connecting: true });
case 'SPOTIFY_START_AUTHORIZATION':
return Object.assign({}, spotify, { authorizing: true });
2016-10-19 14:09:34 +13:00
case 'SPOTIFY_AUTHORIZATION_COMPLETE':
return Object.assign({}, spotify, {
authorizing: false,
authorized: true,
2016-10-19 14:09:34 +13:00
authorization: action.data,
me: action.data.me,
token: action.data.access_token
});
case 'SPOTIFY_REMOVE_AUTHORIZATION':
return Object.assign({}, spotify, {
authorizing: false,
authorization: false,
2016-10-19 14:09:34 +13:00
authorized: false,
token: false,
me: false
});
case 'SPOTIFY_CONNECTED':
return Object.assign({}, spotify, { connected: true, connecting: false });
case 'SPOTIFY_DISCONNECTED':
return Object.assign({}, spotify, { connected: false, connecting: false });
2016-10-16 13:28:21 +13:00
case 'SPOTIFY_ALBUM_LOADED':
return Object.assign({}, spotify, { album: action.data });
case 'SPOTIFY_ARTIST_LOADED':
return Object.assign({}, spotify, { artist: action.data });
case 'SPOTIFY_ARTIST_ALBUMS_LOADED':
return Object.assign({}, spotify, { artist_albums: action.data });
case 'SPOTIFY_LIBRARY_ARTISTS_LOADED':
2016-10-17 14:27:48 +13:00
return Object.assign({}, spotify, { libraryArtists: action.data });
case 'SPOTIFY_LIBRARY_ALBUMS_LOADED':
return Object.assign({}, spotify, { libraryAlbums: action.data });
default:
return spotify
}
}