import {createStore, combineReducers, applyMiddleware, compose} from 'redux'; import thunk from 'redux-thunk'; import actionPromise from "./actionPromise"; import {gql, urlUpload} from "./gql"; import actionGoods from "./actionGoods" import getGoods from "./getGoods"; import {actionSearch} from "./actionsearch"; import actionLogin from "./actionLogin"; import authReducer from "./authReducer"; import {actionAuthLogin, actionAuthLogout} from "./actionAuthLog"; import actionGoodCard from "./actionGoodCard"; import updateAction from "./actionUpdateImg"; import {cartReducer, actionCartClear, actionCartDelete, actionCartAdd} from "./cartReducer"; import actionOrder from "./actionOrder"; function promiseReducer(state={}, action){ if (action.type === 'PROMISE'){ const { name="default", status, payload, error} = action if (status){ return { ...state, [name]: {status, payload: (status === 'PENDING' && state[name] && state[name].payload) || payload, error} } } } return state; } const store = createStore(combineReducers({ promiseRed: promiseReducer, auth: authReducer, basket: cartReducer }), compose(applyMiddleware(thunk))) export {actionPromise, gql, actionGoods, getGoods, promiseReducer, store, actionSearch, actionLogin, authReducer, actionAuthLogin, actionAuthLogout, urlUpload, actionGoodCard, updateAction, actionCartAdd, actionCartDelete, actionCartClear, actionOrder};