Skip to content
Snippets Groups Projects
withSubmitRevision.js 1.23 KiB
Newer Older
import { get } from 'lodash'
import { compose, withHandlers, withProps } from 'recompose'

import {
  uploadFile,
  deleteFile,
} from 'pubsweet-components-faraday/src/redux/files'

import { onChange, onSubmit, getInitialValues } from './utils'

export default compose(
  withHandlers({
    addResponseFile: ({ fragment, changeForm }) => file =>
      uploadFile({
        file,
        fragment,
        type: 'responseToReviewers',
      }).then(f => {
        changeForm('revision', 'responseToReviewers.file', f)
      }),
    deleteFile: ({ changeForm }) => file =>
      deleteFile(file.id, 'responseToReviewers').then(r => {
        changeForm('revision', 'responseToReviewers.file', null)
      }),
  }),
  withProps(
    ({
      journal,
      fragment,
      deleteFile,
      collection,
      currentUser,
      getSignedUrl,
      addResponseFile,
      formValues: { revision },
    }) => ({
      submitRevision: {
        journal,
        onChange,
        fragment,
        onSubmit,
        collection,
        deleteFile,
        currentUser,
        getSignedUrl,
        addResponseFile,
        initialValues: getInitialValues(fragment),
        responseFile: get(revision, 'responseToReviewers.file', null),
      },
    }),
  ),
)