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