From 19481310fbe9cc78a745c6585e65dc00e25f9a93 Mon Sep 17 00:00:00 2001
From: Alf Eaton <eaton.alf@gmail.com>
Date: Thu, 31 Aug 2017 16:09:46 +0100
Subject: [PATCH] Update form values instead of updating the fragment

---
 src/molecules/Files.js  | 17 ++++++++++++++---
 src/molecules/Upload.js |  5 +++++
 2 files changed, 19 insertions(+), 3 deletions(-)

diff --git a/src/molecules/Files.js b/src/molecules/Files.js
index c2590eb7f..5e653183b 100644
--- a/src/molecules/Files.js
+++ b/src/molecules/Files.js
@@ -18,19 +18,29 @@ class Files extends React.Component {
   }
 
   handleChange = event => {
-    const { uploadFile } = this.props
     const { uploads } = this.state
 
     Array.from(event.target.files).forEach(file => {
       uploads.push({
         file,
-        request: uploadFile(file)
+        request: this.props.uploadFile(file)
       })
     })
 
     this.setState({ uploads })
   }
 
+  handleUploadedFile = ({ file, url }) => {
+    const values = this.state.values.concat({
+      name: file.name,
+      url
+    })
+
+    this.setState({ values })
+
+    this.props.handleChange(values)
+  }
+
   render () {
     const { name } = this.props
     const { values, uploads } = this.state
@@ -59,7 +69,8 @@ class Files extends React.Component {
             <Upload
               key={upload.file.name}
               file={upload.file}
-              request={upload.request}/>
+              request={upload.request}
+              handleUploadedFile={this.handleUploadedFile}/>
           ))}
 
           {values && values.map(value => (
diff --git a/src/molecules/Upload.js b/src/molecules/Upload.js
index a5c0d08ec..d7fcc0052 100644
--- a/src/molecules/Upload.js
+++ b/src/molecules/Upload.js
@@ -31,6 +31,11 @@ class Upload extends React.Component {
       this.setState({
         progress: 1
       })
+
+      this.props.handleUploadedFile({
+        file: this.props.file,
+        url: this.props.request.responseText
+      })
     } else {
       this.setState({
         error: 'There was an error'
-- 
GitLab