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