summaryrefslogtreecommitdiff
path: root/client/components/Folder
diff options
context:
space:
mode:
Diffstat (limited to 'client/components/Folder')
-rw-r--r--client/components/Folder/FileUploadButton.jsx44
-rw-r--r--client/components/Folder/Folder.jsx28
2 files changed, 59 insertions, 13 deletions
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 (
+ <div key={i}>
+ {file.name}
+ </div>
+ )
+ })
+ return (
+ <div class='fileUploadButton'>
+ <input type='file' multiple name='files' onChange={this.updateFiles} />
+ <span>+ file</span>
+ </div>
+ )
+ }
+}
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 (
- <div key={i} onClick={() => this.toggle(folder)}>
- {folder.name}
+ <div key={i}>
+ {file.name}
</div>
)
})
return (
<div class='folders'>
- <b>{this.props.folder.name}</b> <button onClick={() => {}}>+ file</button>
- {folders}
+ <b>{this.props.folder.name}</b> <FileUploadButton folder={this.props.folder} addFiles={this.addFiles} />
+ {files}
</div>
)
}