github.com/muhammedhassanm/blockchain@v0.0.0-20200120143007-697261defd4d/blockapps-ba-master/ui/src/configureStore.js (about) 1 import { fork } from 'redux-saga/effects'; 2 import { 3 createStore, 4 applyMiddleware, 5 combineReducers 6 } from 'redux'; 7 import createSagaMiddleware from 'redux-saga'; 8 import { loadingBarMiddleware } from 'react-redux-loading-bar'; 9 10 import { routerReducer } from 'react-router-redux'; 11 import { reducer as formReducer } from 'redux-form'; 12 import { loadingBarReducer } from 'react-redux-loading-bar'; 13 import userMessageReducer from './components/UserMessage/user-message.reducer'; 14 import loginReducer from './scenes/Login/login.reducer.js'; 15 import explorerUrlReducer from './components/ExplorerUrl/explorer.reducer'; 16 import projectListReducer from './scenes/Projects/components/ProjectList/project-list.reducer'; 17 import projectReducer from './scenes/Projects/components/Project/reducers/project.reducer'; 18 import projectBidsReducer from './scenes/Projects/components/Project/components/Bids/components/BidTable/reducers/projectBids.reducer'; 19 import projectCreateReducer from './scenes/Projects/components/ProjectCreate/reducers/project-create.reducer'; 20 import bidModalReducer from './scenes/Projects/components/BidModal/bidModal.reducer'; 21 import userBalanceReducer from './components/App/components/UserBadge/user-badge.reducer'; 22 23 import watchExplorerUrl from './components/ExplorerUrl/explorer.saga'; 24 import watchLoginSubmit from './scenes/Login/login.saga'; 25 import watchFetchProjectList from './scenes/Projects/components/ProjectList/project-list.saga'; 26 import watchFetchProject from './scenes/Projects/components/Project/sagas/project.saga'; 27 import watchProjectCreate from './scenes/Projects/components/ProjectCreate/sagas/project-create.saga'; 28 import watchProjectEvent from './scenes/Projects/components/Project/sagas/project-event.saga.js'; 29 import watchBidSubmit from './scenes/Projects/components/BidModal/bidModal.saga.js'; 30 import watchBidAccept from './scenes/Projects/components/Project/components/Bids/components/BidTable/sagas/acceptBid.saga.js'; 31 import watchFetchProjectBids from './scenes/Projects/components/Project/components/Bids/components/BidTable/sagas/projectBids.saga.js'; 32 import watchBalanceSubmit from './components/App/components/UserBadge/user-badge.saga'; 33 34 const rootReducer = combineReducers({ 35 form: formReducer, 36 routing: routerReducer, 37 userMessage: userMessageReducer, 38 login: loginReducer, 39 explorerUrl: explorerUrlReducer, 40 projects: projectListReducer, 41 bids: projectBidsReducer, 42 bidModal: bidModalReducer, 43 project: projectReducer, 44 createProject: projectCreateReducer, 45 loadingBar: loadingBarReducer, 46 balance: userBalanceReducer, 47 }); 48 49 const rootSaga = function* startForeman() { 50 yield [ 51 fork(watchLoginSubmit), 52 fork(watchExplorerUrl), 53 fork(watchFetchProjectList), 54 fork(watchFetchProject), 55 fork(watchProjectCreate), 56 fork(watchProjectEvent), 57 fork(watchBidSubmit), 58 fork(watchBidAccept), 59 fork(watchFetchProjectBids), 60 fork(watchBalanceSubmit), 61 ] 62 }; 63 64 const configureStore = () => { 65 const sagaMiddleware = createSagaMiddleware(); 66 return { 67 ...createStore(rootReducer, 68 window.devToolsExtension ? window.devToolsExtension() : f => f, 69 applyMiddleware(sagaMiddleware,loadingBarMiddleware()) 70 ), 71 runSaga: sagaMiddleware.run(rootSaga) 72 }; 73 }; 74 75 export default configureStore;