index.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import {createStore, combineReducers, applyMiddleware, compose} from 'redux';
  2. import thunk from 'redux-thunk';
  3. import actionPromise from "./actionPromise";
  4. import {gql, urlUpload} from "./gql";
  5. import actionGoods from "./actionGoods"
  6. import getGoods from "./getGoods";
  7. import {actionSearch} from "./actionsearch";
  8. import actionLogin from "./actionLogin";
  9. import authReducer from "./authReducer";
  10. import {actionAuthLogin, actionAuthLogout} from "./actionAuthLog";
  11. import actionGoodCard from "./actionGoodCard";
  12. import updateAction from "./actionUpdateImg";
  13. import {cartReducer, actionCartClear, actionCartDelete, actionCartAdd} from "./cartReducer";
  14. import actionOrder from "./actionOrder";
  15. function promiseReducer(state={}, action){
  16. if (action.type === 'PROMISE'){
  17. const { name="default", status, payload, error} = action
  18. if (status){
  19. return {
  20. ...state, [name]: {status, payload: (status === 'PENDING' && state[name] && state[name].payload) || payload, error}
  21. }
  22. }
  23. }
  24. return state;
  25. }
  26. const store = createStore(combineReducers({
  27. promiseRed: promiseReducer,
  28. auth: authReducer,
  29. basket: cartReducer
  30. }), compose(applyMiddleware(thunk)))
  31. export {actionPromise, gql, actionGoods, getGoods, promiseReducer, store, actionSearch,
  32. actionLogin, authReducer, actionAuthLogin, actionAuthLogout, urlUpload, actionGoodCard,
  33. updateAction, actionCartAdd, actionCartDelete, actionCartClear, actionOrder};