@woocommerce/data
Version:
WooCommerce Admin data store and utilities
71 lines (70 loc) • 1.95 kB
JavaScript
/**
* External dependencies
*/
/**
* Internal dependencies
*/
import TYPES from './action-types';
const initialState = {
reviews: {},
errors: {},
data: {},
};
const reducer = (state = initialState, action) => {
switch (action.type) {
case TYPES.UPDATE_REVIEWS:
const ids = [];
const nextReviews = action.reviews.reduce((result, review) => {
ids.push(review.id);
result[review.id] = {
...(state.data[review.id] || {}),
...review,
};
return result;
}, {});
return {
...state,
reviews: {
...state.reviews,
[]: {
data: ids,
totalCount: action.totalCount,
},
},
data: {
...state.data,
...nextReviews,
},
};
case TYPES.SET_REVIEW:
return {
...state,
data: {
...state.data,
[]: action.reviewData,
},
};
case TYPES.SET_ERROR:
return {
...state,
errors: {
...state.errors,
[]: action.error,
},
};
case TYPES.SET_REVIEW_IS_UPDATING:
return {
...state,
data: {
...state.data,
[]: {
...state.data[action.reviewId],
isUpdating: action.isUpdating,
},
},
};
default:
return state;
}
};
export default reducer;