import { get } from 'lodash' import { create, update } from 'pubsweet-client/src/helpers/api' // #region Selectors export const selectRecommendations = (state, fragmentId) => get(state, `fragments.${fragmentId}.recommendations`, []) export const selectEditorialRecommendations = (state, fragmentId) => selectRecommendations(state, fragmentId).filter( r => r.recommendationType === 'editorRecommendation' && r.comments, ) export const selectReviewRecommendations = (state, fragmentId) => selectRecommendations(state, fragmentId).filter( r => r.recommendationType === 'review', ) // #endregion // #region Actions // error handling and fetching is handled by the autosave reducer export const createRecommendation = ( collId, fragId, recommendation, ) => dispatch => create( `/collections/${collId}/fragments/${fragId}/recommendations`, recommendation, ) export const updateRecommendation = ( collId, fragId, recommendation, ) => dispatch => update( `/collections/${collId}/fragments/${fragId}/recommendations/${ recommendation.id }`, recommendation, ) // #endregion