UNPKG

ignite-router-flux

Version:

Infinite Red's hot boilerplate for React Native.

39 lines (28 loc) 1.22 kB
import { createStore, applyMiddleware, compose } from 'redux' import Config from '../Config/DebugConfig' import createSagaMiddleware from 'redux-saga' import ScreenTracking from './ScreenTrackingMiddleware' // creates the store export default (rootReducer, rootSaga) => { /* ------------- Redux Configuration ------------- */ const middleware = [] const enhancers = [] /* ------------- Analytics Middleware ------------- */ middleware.push(ScreenTracking) /* ------------- Saga Middleware ------------- */ const sagaMonitor = Config.useReactotron ? console.tron.createSagaMonitor() : null const sagaMiddleware = createSagaMiddleware({ sagaMonitor }) middleware.push(sagaMiddleware) /* ------------- Assemble Middleware ------------- */ enhancers.push(applyMiddleware(...middleware)) // if Reactotron is enabled (default for __DEV__), we'll create the store through Reactotron const createAppropriateStore = Config.useReactotron ? console.tron.createStore : createStore const store = createAppropriateStore(rootReducer, compose(...enhancers)) // kick off root saga let sagasManager = sagaMiddleware.run(rootSaga) return { store, sagasManager, sagaMiddleware } }