client/src/store/configureStore.js
changeset 29 4cfeabef7d5e
parent 14 df6780e48eb5
child 44 3b20e2b584fe
--- a/client/src/store/configureStore.js	Mon Jun 12 18:09:13 2017 +0200
+++ b/client/src/store/configureStore.js	Mon Jun 12 18:12:38 2017 +0200
@@ -1,32 +1,15 @@
 import rootReducer from '../reducers';
+import rootSaga from '../sagas';
+import { loadSessions } from '../actions/sessionsActions';
 import { createStore, applyMiddleware } from 'redux';
 import { routerMiddleware } from 'react-router-redux';
+import createSagaMiddleware from 'redux-saga'
 import Immutable from 'immutable';
 
-const loadState = () => {
-  try {
-    const serializedState = localStorage.getItem('state');
-    if (!serializedState) {
-      return {};
-    }
-    return JSON.parse(serializedState);
-  } catch (err) {
-    return {};
-  }
-}
-
-const saveState = (state) => {
-  try {
-    localStorage.setItem('state', JSON.stringify(state));
-  } catch (err) {}
-}
-
-const savedState = loadState();
-
 const defaultState = {
   currentSession: null,
-  sessions: Immutable.List(savedState.sessions || []),
-  notes: Immutable.List(savedState.notes || []),
+  sessions: Immutable.List([]),
+  notes: Immutable.List([]),
   isAuthenticated: false,
 };
 
@@ -34,18 +17,14 @@
 
 export default (history, initialState = storeInitialState) => {
 
-  const middleware = routerMiddleware(history);
-  const store = createStore(rootReducer, initialState, applyMiddleware(middleware));
+  const router = routerMiddleware(history);
+  const saga = createSagaMiddleware();
 
-  store.subscribe(() => {
-    const state = store.getState().toJSON();
-    const stateToPersist = {
-      sessions: state.sessions,
-      notes: state.notes,
-    };
+  const store = createStore(rootReducer, initialState, applyMiddleware(router, saga));
 
-    saveState(stateToPersist);
-  });
+  saga.run(rootSaga)
+
+  store.dispatch(loadSessions());
 
   return store;
 };