@empathyco/x-components
Version:
Empathy X Components
52 lines (49 loc) • 1.67 kB
JavaScript
import { setConfig, mergeConfig } from '../../../store/utils/config-store.utils.js';
import { setStatus } from '../../../store/utils/status-store.utils.js';
import { cancelFetchAndSaveRecommendations, fetchAndSaveRecommendations } from './actions/fetch-and-save-recommendations.action.js';
import { fetchRecommendations } from './actions/fetch-recommendations.action.js';
import { RECOMMENDATIONS_ORIGIN } from './constants.js';
import { request } from './getters/request.getter.js';
/**
* {@link XStoreModule} For the recommendations module.
*
* @internal
*/
const recommendationsXStoreModule = {
state: () => ({
config: {
maxItemsToRequest: 24,
},
origin: RECOMMENDATIONS_ORIGIN,
status: 'initial',
recommendations: [],
params: {},
}),
getters: {
request,
},
mutations: {
setRecommendations(state, recommendations) {
state.recommendations = recommendations;
},
setStatus,
setParams(state, params) {
state.params = params;
},
updateRecommendation(state, recommendation) {
const stateRecommendation = state.recommendations.find(stateRecommendation => recommendation.id === stateRecommendation.id);
if (stateRecommendation) {
Object.assign(stateRecommendation, recommendation);
}
},
setConfig,
mergeConfig,
},
actions: {
cancelFetchAndSaveRecommendations,
fetchRecommendations,
fetchAndSaveRecommendations,
},
};
export { recommendationsXStoreModule };
//# sourceMappingURL=module.js.map