2020-10-26 15:18:23 +03:00
|
|
|
import { createStore, applyMiddleware, compose } from 'redux';
|
|
|
|
import { composeWithDevTools } from 'redux-devtools-extension';
|
|
|
|
import thunk from 'redux-thunk';
|
|
|
|
import invariant from 'redux-immutable-state-invariant';
|
|
|
|
import reducer from '../reducers';
|
|
|
|
import * as actionCreators from '../actions/counter';
|
|
|
|
|
|
|
|
export default function configureStore(preloadedState) {
|
|
|
|
const composeEnhancers = composeWithDevTools({
|
|
|
|
actionCreators,
|
|
|
|
trace: true,
|
|
|
|
traceLimit: 25,
|
|
|
|
});
|
|
|
|
const store = createStore(
|
|
|
|
reducer,
|
|
|
|
preloadedState,
|
2023-07-12 21:03:20 +03:00
|
|
|
composeEnhancers(applyMiddleware(invariant(), thunk)),
|
2020-10-26 15:18:23 +03:00
|
|
|
);
|
|
|
|
|
|
|
|
if (module.hot) {
|
|
|
|
// Enable Webpack hot module replacement for reducers
|
|
|
|
module.hot.accept('../reducers', () => {
|
|
|
|
store.replaceReducer(require('../reducers').default);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
return store;
|
|
|
|
}
|