strapi-plugin-config-sync/admin/src/helpers/configureStore.js

48 lines
1.0 KiB
JavaScript
Raw Normal View History

2021-03-20 00:54:18 +01:00
import { createStore, applyMiddleware, compose } from 'redux';
import thunkMiddleware from 'redux-thunk';
import { Map } from 'immutable';
import rootReducer from '../state/reducers';
import { __DEBUG__ } from '../config/constants';
2021-11-20 19:51:03 +01:00
const configureStore = () => {
2021-10-14 17:13:12 +02:00
const initialStoreState = Map();
2021-03-20 00:54:18 +01:00
const enhancers = [];
const middlewares = [
2021-11-20 19:51:03 +01:00
thunkMiddleware,
2021-03-20 00:54:18 +01:00
];
let devtools;
if (__DEBUG__) {
devtools = (
typeof window !== 'undefined'
&& typeof window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ === 'function'
&& window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({ actionsBlacklist: [] })
);
if (devtools) {
console.info('[setup] ✓ Enabling Redux DevTools Extension');
}
}
const composedEnhancers = devtools || compose;
const storeEnhancers = composedEnhancers(
applyMiddleware(...middlewares),
...enhancers
);
const store = createStore(
rootReducer,
initialStoreState,
storeEnhancers,
);
return store;
};
export default configureStore;
2021-11-20 19:51:03 +01:00
export const store = configureStore();