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;