summaryrefslogtreecommitdiff
path: root/client/components/Browser/Folder
diff options
context:
space:
mode:
Diffstat (limited to 'client/components/Browser/Folder')
-rw-r--r--client/components/Browser/Folder/Files.jsx (renamed from client/components/Browser/Folder/Folder.jsx)20
1 files changed, 12 insertions, 8 deletions
diff --git a/client/components/Browser/Folder/Folder.jsx b/client/components/Browser/Folder/Files.jsx
index a3588f1..7d439c5 100644
--- a/client/components/Browser/Folder/Folder.jsx
+++ b/client/components/Browser/Folder/Files.jsx
@@ -1,22 +1,25 @@
import { h, Component } from 'preact'
+import { audioPlayFile } fromĀ '../../../actions'
+
import client from '../../../client.js'
import FileUploadButton from './FileUploadButton.jsx'
+import FileLink from '../../../containers/fileLink.js'
import TaskContentLink from '../../../containers/taskContentLink.js'
import TaskStyleLink from '../../../containers/taskStyleLink.js'
-export default class Folder extends Component {
+export default class Files extends Component {
constructor(props) {
super()
this.state = {
files: props.folder.files || [],
+ selected: null,
}
this.addFiles = this.addFiles.bind(this)
if (! props.folder.files) {
client.file.index({ folder_id: props.folder.id }).then( files => this.setState({ files }) )
}
- this.audio = document.createElement('audio')
}
addFiles(newFiles) {
if (! newFiles) return
@@ -25,21 +28,22 @@ export default class Folder extends Component {
}
handleClick(file) {
if (file.type === 'audio') {
- this.audio.setAttribute('src', mp3path(file))
- this.audio.play()
+ audioPlayFile(file)
document.body.style.backgroundImage = 'url(' + pngpath(file) + ')'
}
+ this.setState({ selected: file })
}
render() {
const files = (this.state.files).map(toFilenamePair).sort(sortByFilename).map(fromPair).map( (file, i) => {
if (! file) return
return (
- <div key={i}>
- <span class='name' onClick={() => this.handleClick(file)}>{file.name}</span>
+ <div key={i} class={this.state.selected === file ? 'selected' : ''}>
+ <span class='name'><FileLink file={file}>{file.name}</FileLink></span>
<span class='mime'>{file.mime}</span>
+ <span class='duration'>{file.duration.toFixed(1) + 's'}</span>
<span class='actions'>
- <TaskContentLink file={file}> content </TaskContentLink>
- <TaskStyleLink file={file}> style </TaskStyleLink>
+ <TaskContentLink file={file}>content</TaskContentLink>
+ <TaskStyleLink file={file}>style</TaskStyleLink>
</span>
</div>
)