From a130e892482c055cb1c216d5c1b2988b674c6122 Mon Sep 17 00:00:00 2001 From: Qolzam Date: Sat, 17 Mar 2018 18:46:05 +0700 Subject: [PATCH] [Improvement] Add root reducer --- src/reducers/index.ts | 22 ++-------------------- src/reducers/rootReducer.ts | 31 +++++++++++++++++++++++++++++++ src/store/configureStore.ts | 36 +++--------------------------------- 3 files changed, 36 insertions(+), 53 deletions(-) create mode 100644 src/reducers/rootReducer.ts diff --git a/src/reducers/index.ts b/src/reducers/index.ts index c189c00..9710865 100644 --- a/src/reducers/index.ts +++ b/src/reducers/index.ts @@ -1,23 +1,5 @@ -import { authorizeReducer } from './authorize' -import { circleReducer } from './circles' -import { commentReducer } from './comments' -import { globalReducer } from './global' -import { imageGalleryReducer } from './imageGallery' -import { notificationReducer } from './notifications' -import { postReducer } from './posts' -import { userReducer } from './users' -import { voteReducer } from './votes' -import { serverReducer } from './server' +import {rootReducer} from './rootReducer' export { - authorizeReducer, - circleReducer, - commentReducer, - globalReducer, - imageGalleryReducer, - notificationReducer, - postReducer, - userReducer, - voteReducer, - serverReducer + rootReducer } diff --git a/src/reducers/rootReducer.ts b/src/reducers/rootReducer.ts new file mode 100644 index 0000000..89f2e34 --- /dev/null +++ b/src/reducers/rootReducer.ts @@ -0,0 +1,31 @@ +import * as redux from 'redux' +import { localeReducer as locale } from 'react-localize-redux' + +// - Import reducers +import { authorizeReducer } from './authorize' +import { circleReducer } from './circles' +import { commentReducer } from './comments' +import { globalReducer } from './global' +import { imageGalleryReducer } from './imageGallery' +import { notificationReducer } from './notifications' +import { postReducer } from './posts' +import { userReducer } from './users' +import { voteReducer } from './votes' +import { serverReducer } from './server' +import { routerReducer, routerMiddleware } from 'react-router-redux' + +// - Reducers +export const rootReducer = redux.combineReducers({ + locale, + imageGallery: imageGalleryReducer, + post: postReducer, + circle: circleReducer, + comment: commentReducer, + vote: voteReducer, + server: serverReducer, + authorize: authorizeReducer, + router: routerReducer, + user: userReducer, + notify: notificationReducer, + global: globalReducer + } as any) \ No newline at end of file diff --git a/src/store/configureStore.ts b/src/store/configureStore.ts index 6268224..4250996 100644 --- a/src/store/configureStore.ts +++ b/src/store/configureStore.ts @@ -1,24 +1,10 @@ // - Import external components import * as redux from 'redux' import thunk from 'redux-thunk' -import { routerReducer, routerMiddleware } from 'react-router-redux' +import { routerMiddleware } from 'react-router-redux' import createHistory from 'history/createBrowserHistory' import { createLogger } from 'redux-logger' -import { localeReducer as locale } from 'react-localize-redux' - -// - Import reducers -import { - imageGalleryReducer, - postReducer, - commentReducer, - voteReducer, - serverReducer, - authorizeReducer, - globalReducer, - userReducer, - circleReducer, - notificationReducer -} from 'reducers' +import { rootReducer } from 'reducers' // Create a history of your choosing (we're using a browser history in this case) export const history = createHistory() @@ -27,29 +13,13 @@ export const history = createHistory() const middleware = routerMiddleware(history) const logger = createLogger() -// - Reducers -let reducer = redux.combineReducers({ - locale, - imageGallery: imageGalleryReducer, - post: postReducer, - circle: circleReducer, - comment: commentReducer, - vote: voteReducer, - server: serverReducer, - authorize: authorizeReducer, - router: routerReducer, - user: userReducer, - notify: notificationReducer, - global: globalReducer -} as any) - // - initial state let initialState = { } // - Config and create store of redux -let store: redux.Store = redux.createStore(reducer, initialState, redux.compose( +let store: redux.Store = redux.createStore(rootReducer, initialState, redux.compose( redux.applyMiddleware(logger,thunk,middleware), (window as any).devToolsExtension ? (window as any).devToolsExtension() : (f: any) => f ))