From b3413b3209e9d71e5c443e8cc36250d392d06f84 Mon Sep 17 00:00:00 2001
From: Bogdan Cochior <bogdan.cochior@thinslices.com>
Date: Thu, 10 May 2018 13:54:53 +0300
Subject: [PATCH] feat(review): add conditional validation

---
 .../src/components/ReviewerReportForm.js              | 11 ++++-------
 packages/component-manuscript/src/components/utils.js |  2 +-
 2 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/packages/component-manuscript/src/components/ReviewerReportForm.js b/packages/component-manuscript/src/components/ReviewerReportForm.js
index a773c484f..50da18d3a 100644
--- a/packages/component-manuscript/src/components/ReviewerReportForm.js
+++ b/packages/component-manuscript/src/components/ReviewerReportForm.js
@@ -1,4 +1,5 @@
 import React, { Fragment } from 'react'
+import { isEmpty } from 'lodash'
 import { connect } from 'react-redux'
 import { required } from 'xpub-validators'
 import { withJournal } from 'xpub-journal'
@@ -115,7 +116,7 @@ const ReviewerReportForm = ({
             />
           )}
           name="public"
-          validate={[]}
+          validate={isEmpty(formValues.files) ? [required] : []}
         />
       </FullWidth>
     </Row>
@@ -232,14 +233,10 @@ export default compose(
     changeField: ({ changeForm }) => (field, value) => {
       changeForm('reviewerReport', field, value)
     },
-    addFile: ({
-      formValues: { files = [] },
-      uploadFile,
-      changeForm,
-      version,
-    }) => file => {
+    addFile: ({ formValues = {}, uploadFile, changeForm, version }) => file => {
       uploadFile(file, 'review', version.id)
         .then(file => {
+          const files = formValues.files || []
           const newFiles = [...files, file]
 
           setTimeout(() => {
diff --git a/packages/component-manuscript/src/components/utils.js b/packages/component-manuscript/src/components/utils.js
index 6eb1902ca..0ffd247ad 100644
--- a/packages/component-manuscript/src/components/utils.js
+++ b/packages/component-manuscript/src/components/utils.js
@@ -140,7 +140,7 @@ const onChange = (
   const newValues = parseReviewRequest(values)
   const prevValues = parseReviewRequest(previousValues)
 
-  if (!isEqual(newValues, prevValues) && !isEmpty(prevValues)) {
+  if (!isEqual(newValues, prevValues)) {
     dispatch(autosaveRequest())
     if (newValues.id) {
       updateRecommendation(project.id, version.id, newValues)
-- 
GitLab