From a7465a66cd49a943b725f0a3ef45d0b1511b48db Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Thu, 29 Jun 2017 04:03:58 +0200 Subject: upload files --- client/components/Folder/FileUploadButton.jsx | 44 +++++++++++++++++++++++++++ client/components/Folder/Folder.jsx | 28 +++++++++-------- 2 files changed, 59 insertions(+), 13 deletions(-) create mode 100644 client/components/Folder/FileUploadButton.jsx (limited to 'client/components/Folder') diff --git a/client/components/Folder/FileUploadButton.jsx b/client/components/Folder/FileUploadButton.jsx new file mode 100644 index 0000000..8c7d170 --- /dev/null +++ b/client/components/Folder/FileUploadButton.jsx @@ -0,0 +1,44 @@ +import { h, Component } from 'preact' +import { Link } from 'react-router-dom' + +import Modal from '../Modal.jsx' + +import client from '../../client.js' + +import FileUploadButton from './FileUploadButton.jsx' + +export default class Folder extends Component { + constructor(props) { + super() + this.state = { + } + this.updateFiles = this.updateFiles.bind(this) + } + updateFiles(event){ + const name = event.target.name + const files = event.target.files + console.log(name, files) + + client.upload(this.props.folder.id, files).then( got_files => { + console.log(got_files) + this.props.addFiles(got_files) + }) + } + + render() { + console.log(this.props) + const files = (this.props.folder.files || []).map( (file, i) => { + return ( +
+ {file.name} +
+ ) + }) + return ( +
+ + + file +
+ ) + } +} diff --git a/client/components/Folder/Folder.jsx b/client/components/Folder/Folder.jsx index 891451c..e39b40d 100644 --- a/client/components/Folder/Folder.jsx +++ b/client/components/Folder/Folder.jsx @@ -5,34 +5,36 @@ import Modal from '../Modal.jsx' import client from '../../client.js' +import FileUploadButton from './FileUploadButton.jsx' + export default class Folder extends Component { constructor(props) { super() this.state = { - adding: false, + files: props.folder.files || [], } + this.addFiles = this.addFiles.bind(this) } - toggle(folder) { - folder.open = ! folder.open - if (folder.open && ! folder.files) { - client.files.index({ 'folder_id': folder.id }).then( files => { - this.props.openFolder(folder) - }) - } + addFiles(newFiles) { + console.log(newFiles) + if (! newFiles) return + const files = this.state.files.concat(newFiles).sort( (a,b) => { return b.id - a.id } ) + this.setState({ files }) } render() { console.log(this.props) - const folders = (this.props.folders || []).map( (folder,i) => { + const files = (this.state.files).map( (file, i) => { + if (! file) return return ( -
this.toggle(folder)}> - {folder.name} +
+ {file.name}
) }) return (
- {this.props.folder.name} - {folders} + {this.props.folder.name} + {files}
) } -- cgit v1.2.3-70-g09d2