44 lines
1.1 KiB
JavaScript
44 lines
1.1 KiB
JavaScript
import { createStore, applyMiddleware } from 'redux';
|
|
import { composeWithDevTools } from 'redux-devtools-extension';
|
|
import thunk from 'redux-thunk';
|
|
import rootReducer from './reducers';
|
|
import setAuthToken from './utils/setAuthToken';
|
|
|
|
const initialState = {};
|
|
|
|
const middleware = [thunk];
|
|
|
|
const store = createStore(
|
|
rootReducer,
|
|
initialState,
|
|
composeWithDevTools(applyMiddleware(...middleware))
|
|
);
|
|
|
|
/*
|
|
NOTE: set up a store subscription listener
|
|
to store the users token in localStorage
|
|
*/
|
|
|
|
/*
|
|
initialize current state from redux store for subscription comparison
|
|
preventing undefined error
|
|
*/
|
|
let currentState = store.getState();
|
|
|
|
store.subscribe(() => {
|
|
// keep track of the previous and current state to compare changes
|
|
let previousState = currentState;
|
|
currentState = store.getState();
|
|
// if the token changes set the value in localStorage and axios headers
|
|
if (previousState.auth.token !== currentState.auth.token) {
|
|
const token = currentState.auth.token;
|
|
setAuthToken(token);
|
|
}
|
|
});
|
|
|
|
<<<<<<< HEAD
|
|
export default store;
|
|
=======
|
|
export default store;
|
|
>>>>>>> cc38df43629d64ca77f694c971a13a026b3afcfb
|