import {createStore, applyMiddleware, compose} from 'redux';
import {persistStore, persistReducer} from 'redux-persist';
import storage from 'redux-persist/lib/storage'; // defaults to localStorage for web
import autoMergeLevel1 from 'redux-persist/lib/stateReconciler/autoMergeLevel1';

import rootReducer from '../reducers/index';
import {createLogger} from 'redux-logger';

const persistConfig = {
  key: 'root',
  storage: storage,
  blacklist: ['tempData'],
  stateReconciler: autoMergeLevel1,
};

const persistedReducer = persistReducer(persistConfig, rootReducer);

let middleware = [];

// if (__DEV__) {
//   const logger = createLogger();
//   middleware.push(logger);
// }

export default function configureStore(initialState) {
  const store = compose(applyMiddleware(...middleware))(createStore)(
    persistedReducer,
  );

  const persistor = persistStore(store);
  return {store, persistor};
}