summaryrefslogtreecommitdiff
path: root/frontend/app/store.js
diff options
context:
space:
mode:
authorlens <lens@neural.garden>2020-12-26 20:59:17 +0000
committerlens <lens@neural.garden>2020-12-26 20:59:17 +0000
commit7c15f34186622410e25ee85c01d832e48e012140 (patch)
treee0a8dbd5e7b6a3936e7b9a666c2622ecc7ff1a65 /frontend/app/store.js
parent94234db6a771f687788d3decc6dd1ba01731f7af (diff)
parent85bfb949fea4e69dabc5b7544ce70d26d3d11393 (diff)
Merge branch 'master' of asdf.us:swimmer
Diffstat (limited to 'frontend/app/store.js')
-rw-r--r--frontend/app/store.js45
1 files changed, 45 insertions, 0 deletions
diff --git a/frontend/app/store.js b/frontend/app/store.js
new file mode 100644
index 0000000..9cf1dbe
--- /dev/null
+++ b/frontend/app/store.js
@@ -0,0 +1,45 @@
+import { applyMiddleware, compose, combineReducers, createStore } from 'redux'
+import { connectRouter, routerMiddleware } from 'connected-react-router'
+import { createBrowserHistory } from 'history'
+import thunk from 'redux-thunk'
+
+import uploadReducer from 'app/views/upload/upload.reducer'
+import graphReducer from 'app/views/graph/graph.reducer'
+import pageReducer from 'app/views/page/page.reducer'
+import tileReducer from 'app/views/tile/tile.reducer'
+import siteReducer from './views/site/site.reducer'
+
+const createRootReducer = history => (
+ combineReducers({
+ auth: (state = {}) => state,
+ router: connectRouter(history),
+ site: siteReducer,
+ graph: graphReducer,
+ page: pageReducer,
+ tile: tileReducer,
+ upload: uploadReducer,
+ })
+)
+
+const configureStore = (initialState = {}, history) => {
+ const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose
+
+ const store = createStore(
+ createRootReducer(history),
+ initialState,
+ composeEnhancers(
+ applyMiddleware(
+ thunk,
+ routerMiddleware(history)
+ ),
+ ),
+ )
+
+ return store
+}
+
+const history = createBrowserHistory()
+const store = configureStore({}, history)
+const { dispatch } = store
+
+export { store, history, dispatch }