File: /var/www/shoetique/wp-content/plugins/woocommerce-stock-manager/admin/assets/src/store/index.js
import { combineReducers, createStore, applyMiddleware } from 'redux';
import { composeWithDevTools } from 'redux-devtools-extension/logOnlyInProduction';
import thunkMiddleware from 'redux-thunk';
import wpApiMiddleware from '../middlewares/wpApiMiddleware';
import { PRODUCTS_REDUCER_NAME, productsReducer } from './products';
import { PRODUCT_REDUCER_NAME, productReducer } from './product';
import { PRODUCT_CATEGORIES_REDUCER_NAME, productCategoriesReducer } from './productCategories';
import { IMAGE_REDUCER_NAME, imageReducer } from './image';
import { APP_REDUCER_NAME, appReducer } from './app';
import { PRODUCT_TYPES_REDUCER_NAME, productTypesReducer } from './productTypes';
import { STOCK_STATUS_OPTIONS_REDUCER_NAME, stockStatusOptionsReducer } from './stockStatusOptions';
import { SHIPPING_CLASSES_REDUCER_NAME, shippingClassesReducer } from './shippingClasses';
import { TAX_CLASSES_REDUCER_NAME, taxClassesReducer } from './taxClasses';
import { TAX_STATUSES_REDUCER_NAME, taxStatusesReducer } from './taxStatuses';
import { BACKORDERS_OPTIONS_REDUCER_NAME, backordersOptionsReducer } from './backordersOptions';
import { PRODUCT_CHANGES_REDUCER_NAME, productChangesReducer } from './productChanges';
import { PRODUCT_VARIATIONS_REDUCER_NAME, productVariationsReducer } from './productVariations';
import { SCREEN_OPTIONS_REDUCER_NAME, screenOptionsReducer } from './screenOptions';
const configureStore = (preloadedState) => {
const rootReducer = combineReducers({
[PRODUCT_REDUCER_NAME]: productReducer,
[PRODUCTS_REDUCER_NAME]: productsReducer,
[PRODUCT_CATEGORIES_REDUCER_NAME]: productCategoriesReducer,
[IMAGE_REDUCER_NAME]: imageReducer,
[APP_REDUCER_NAME]: appReducer,
[PRODUCT_TYPES_REDUCER_NAME]: productTypesReducer,
[STOCK_STATUS_OPTIONS_REDUCER_NAME]: stockStatusOptionsReducer,
[SHIPPING_CLASSES_REDUCER_NAME]: shippingClassesReducer,
[TAX_CLASSES_REDUCER_NAME]: taxClassesReducer,
[TAX_STATUSES_REDUCER_NAME]: taxStatusesReducer,
[BACKORDERS_OPTIONS_REDUCER_NAME]: backordersOptionsReducer,
[PRODUCT_CHANGES_REDUCER_NAME]: productChangesReducer,
[PRODUCT_VARIATIONS_REDUCER_NAME]: productVariationsReducer,
[SCREEN_OPTIONS_REDUCER_NAME]: screenOptionsReducer,
});
const middlewares = [thunkMiddleware, wpApiMiddleware];
const middlewareEnhancer = applyMiddleware(...middlewares);
const enhancers = [middlewareEnhancer];
const composedEnhancers = composeWithDevTools(...enhancers);
const store = createStore(rootReducer, preloadedState, composedEnhancers);
return store;
};
export default configureStore;