@woocommerce/data
Version:
WooCommerce Admin data store and utilities
52 lines (51 loc) • 1.82 kB
JavaScript
import { TYPES } from './action-types';
import { getRequestIdentifier } from '../crud/utils';
import CRUD_ACTIONS from './crud-actions';
const reducer = (state = {
items: {},
data: {},
itemsCount: {},
errors: {},
requesting: {},
}, payload) => {
if (payload && 'type' in payload) {
switch (payload.type) {
case TYPES.GENERATE_VARIATIONS_REQUEST:
return {
...state,
requesting: {
...state.requesting,
[getRequestIdentifier(CRUD_ACTIONS.GENERATE_VARIATIONS, payload.key)]: true,
},
};
case TYPES.GENERATE_VARIATIONS_SUCCESS:
return {
...state,
requesting: {
...state.requesting,
[getRequestIdentifier(CRUD_ACTIONS.GENERATE_VARIATIONS, payload.key)]: false,
},
errors: {
...state.errors,
[getRequestIdentifier(CRUD_ACTIONS.GENERATE_VARIATIONS, payload.key)]: undefined,
},
};
case TYPES.GENERATE_VARIATIONS_ERROR:
return {
...state,
errors: {
...state.errors,
[getRequestIdentifier(payload.errorType, payload.key)]: payload.error,
},
requesting: {
...state.requesting,
[getRequestIdentifier(CRUD_ACTIONS.GENERATE_VARIATIONS, payload.key)]: false,
},
};
default:
return state;
}
}
return state;
};
export { reducer };