Not requiring spotipy; Moving core into new service

This commit is contained in:
James Barnsley
2017-08-02 10:53:30 +12:00
parent fc4780deb4
commit 0c134459ea
38 changed files with 1309 additions and 1274 deletions

45
src/js/bootstrap.js vendored
View File

@ -1,6 +1,7 @@
import { createStore, applyMiddleware, combineReducers } from 'redux'
import core from './services/core/reducer'
import ui from './services/ui/reducer'
import pusher from './services/pusher/reducer'
import mopidy from './services/mopidy/reducer'
@ -8,6 +9,7 @@ import lastfm from './services/lastfm/reducer'
import spotify from './services/spotify/reducer'
import thunk from 'redux-thunk'
import coreMiddleware from './services/core/middleware'
import uiMiddleware from './services/ui/middleware'
import pusherMiddleware from './services/pusher/middleware'
import mopidyMiddleware from './services/mopidy/middleware'
@ -15,6 +17,7 @@ import spotifyMiddleware from './services/spotify/middleware'
import localstorageMiddleware from './services/localstorage/middleware'
let reducers = combineReducers({
core,
ui,
pusher,
mopidy,
@ -25,6 +28,15 @@ let reducers = combineReducers({
// set application defaults
// TODO: Look at using propTypes in the component for these falsy initial states
var initialState = {
core: {
current_tracklist: [],
current_tltrack: false
},
ui: {
slim_mode: false,
selected_tracks: [],
notifications: []
},
mopidy: {
connected: false,
host: window.location.hostname,
@ -50,20 +62,23 @@ var initialState = {
spotify: {
connected: false,
me: false,
autocomplete_results: {}
},
ui: {
slim_mode: false,
current_tracklist: [],
current_tltrack: false,
selected_tracks: [],
notifications: [],
config: {
authorization_url: 'https://jamesbarnsley.co.nz/auth_v2.php'
}
autocomplete_results: {},
authorization_url: 'https://jamesbarnsley.co.nz/auth_v2.php'
}
};
// if we've got a stored version of spotify state, load and merge
if( localStorage.getItem('core') ){
var storedCore = JSON.parse( localStorage.getItem('core') );
initialState.core = Object.assign(initialState.core, storedCore );
}
// if we've got a stored version of spotify state, load and merge
if( localStorage.getItem('ui') ){
var storedUi = JSON.parse( localStorage.getItem('ui') );
initialState.ui = Object.assign(initialState.ui, storedUi );
}
// if we've got a stored version of mopidy state, load and merge
if( localStorage.getItem('mopidy') ){
var storedMopidy = JSON.parse( localStorage.getItem('mopidy') );
@ -82,18 +97,12 @@ if( localStorage.getItem('spotify') ){
initialState.spotify = Object.assign(initialState.spotify, storedSpotify );
}
// if we've got a stored version of spotify state, load and merge
if( localStorage.getItem('ui') ){
var storedUi = JSON.parse( localStorage.getItem('ui') );
initialState.ui = Object.assign(initialState.ui, storedUi );
}
console.log('Bootstrapping', initialState)
let store = createStore(
reducers,
initialState,
applyMiddleware( thunk, localstorageMiddleware, uiMiddleware, mopidyMiddleware, pusherMiddleware, spotifyMiddleware )
applyMiddleware( thunk, localstorageMiddleware, coreMiddleware, uiMiddleware, mopidyMiddleware, pusherMiddleware, spotifyMiddleware )
);
export default store;