Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
recommendations.js 1.10 KiB
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