trade.app.frontend/src/stores/store.js

43 lines
1.3 KiB
JavaScript
Executable File

import { createStore, applyMiddleware } from 'redux'
import { composeWithDevTools } from 'redux-devtools-extension'
import thunk from 'redux-thunk'
import rootReducer from './reducers'
import { saveState, loadState } from './localStorage';
import lodash from 'lodash';
//const store = createStore(rootReducer) //, composeWithDevTools(applyMiddleware(thunk))
const persistedState = loadState();
export const store = createStore(rootReducer, persistedState, composeWithDevTools(applyMiddleware(thunk)))
// console.log(store.getState())
store.subscribe(() => {
saveState({
user: store.getState().user,
chat: store.getState().chat,
exchange: store.getState().exchange,
comments: store.getState().comments,
subjects: store.getState().subjects,
threads: store.getState().threads,
movements: store.getState().movements
});
});
store.subscribe(lodash.throttle(() => {
saveState({
user: store.getState().user,
chat: store.getState().chat,
exchange: store.getState().exchange,
comments: store.getState().comments,
subjects: store.getState().subjects,
threads: store.getState().threads,
movements: store.getState().movements
});
}, 1000));
export default preloadedState => {
return createStore(rootReducer, preloadedState)
}