import { createStore, applyMiddleware, compose } from "redux";
import { persistStore, persistReducer } from "redux-persist";
import { createLogicMiddleware } from "redux-logic";
import storage from "redux-persist/lib/storage";
import allReducers from "./reducers";
import logic from "./logic";

const persistConfig = {
  key: "root",
  storage,
  whitelist: ["users"],
};

const persistedReducer = persistReducer(persistConfig, allReducers);
const deps = {
  SECRET_KEY: "dsfjsdkfjsdlfjls",
};

const logicMiddleware = createLogicMiddleware(logic, deps);
const composedMiddleware = compose(applyMiddleware(logicMiddleware));

const store = createStore(persistedReducer, composedMiddleware);
let persistor = persistStore(store);

export default {
  store,
  persistor,
};