gridiron-example
Version:
Example webpack project for gridiron and related components. Showcases what can be done with gridiron.
39 lines (32 loc) • 1.51 kB
JavaScript
import Immutable from 'immutable'
import { createStore, applyMiddleware, compose } from 'redux'
import { routerMiddleware } from 'react-router-redux'
import { combineReducers } from 'redux'
import { thunk, createLogger } from 'redux-middleware'
import { log, IS_BROWSER } from '../../../config'
import { middleware as idle, actions as idleActions } from '../modules/redux-idle-monitor'
import { streamData } from '../actions/data'
import subscribeStore from './subscribeStore'
import * as reducers from '../reducers'
export default function configureStore(history, initialState) {
const reducer = combineReducers(reducers)
const middlewares = [ thunk
, routerMiddleware(history)
, idle
, createLogger({ logger: IS_BROWSER ? console : log })
]
const enhancer = compose( applyMiddleware(...middlewares)
, typeof window === 'object' && typeof window.devToolsExtension !== 'undefined' ? window.devToolsExtension() : f => f
)
const store = createStore(reducer, initialState, enhancer)
const unsubscribe = subscribeStore(store)
if(typeof window === 'object')
store.dispatch(streamData([ 'openflights', 'airlines' ]))
/*
if(IS_BROWSER)
store.dispatch(idleActions.start())
*/
if(module.hot)
module.hot.accept('../reducers', () => store.replaceReducer(require('../reducers').default))
return store
}