57 lines
1.7 KiB
JavaScript
57 lines
1.7 KiB
JavaScript
// - Import external components
|
|
import * as redux from 'redux'
|
|
import thunk from 'redux-thunk'
|
|
import {routerReducer, routerMiddleware } from 'react-router-redux'
|
|
import createHistory from 'history/createBrowserHistory'
|
|
import {createLogger} from 'redux-logger';
|
|
|
|
// - Import reducers
|
|
import {imageGalleryReducer} from 'imageGalleryReducer'
|
|
import {imageUploaderReducer} from 'imageUploaderReducer'
|
|
import {postReducer} from 'postReducer'
|
|
import {commentReducer} from 'commentReducer'
|
|
import {voteReducer} from 'voteReducer'
|
|
import {authorizeReducer} from 'authorizeReducer'
|
|
import {fileReducer} from 'fileReducer'
|
|
import {globalReducer} from 'globalReducer'
|
|
import {userReducer} from 'userReducer'
|
|
import {circleReducer} from 'circleReducer'
|
|
import {notifyReducer} from 'notifyReducer'
|
|
|
|
// Create a history of your choosing (we're using a browser history in this case)
|
|
export const history = createHistory()
|
|
|
|
// - Build the middleware for intercepting and dispatching navigation actions
|
|
const middleware = routerMiddleware(history)
|
|
const logger = createLogger()
|
|
|
|
// - Reducers
|
|
var reducer = redux.combineReducers({
|
|
imageGallery: imageGalleryReducer,
|
|
imageUploader: imageUploaderReducer,
|
|
post: postReducer,
|
|
circle: circleReducer,
|
|
comment: commentReducer,
|
|
vote: voteReducer,
|
|
authorize: authorizeReducer,
|
|
router: routerReducer,
|
|
file: fileReducer,
|
|
user: userReducer,
|
|
notify:notifyReducer,
|
|
global: globalReducer
|
|
})
|
|
|
|
// - initial state
|
|
var initialState = {
|
|
|
|
|
|
}
|
|
|
|
// - Config and create store of redux
|
|
var store = redux.createStore(reducer, initialState, redux.compose(
|
|
redux.applyMiddleware(logger,thunk,middleware),
|
|
window.devToolsExtension ? window.devToolsExtension() : f => f
|
|
))
|
|
|
|
export default store
|