import { applyMiddleware, compose, createStore } from 'redux';
import thunk from 'redux-thunk';
import { createLogger } from 'redux-logger';
import rootReducer from './rootReducer';

let store;

const configureStore = (initialState) => {
  const middleware = [];
  // const enhancers = [];

  // THUNK
  middleware.push(thunk);

  // Logging Middleware
  const logger = createLogger({
    level: 'info',
    collapsed: true
  });
  middleware.push(logger);

  const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;

  store = createStore(rootReducer, initialState, composeEnhancers(
    applyMiddleware(...middleware)
  ));

}


if (!store) {
  configureStore();
}

export default store;