import { h, Component } from 'preact' import client from '../../../client.js' import FileUploadButton from './FileUploadButton.jsx' import TaskContentLink from '../../../containers/taskContentLink.js' import TaskStyleLink from '../../../containers/taskStyleLink.js' export default class Folder extends Component { constructor(props) { super() this.state = { files: props.folder.files || [], } 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 const files = this.state.files.concat(newFiles).sort( (a,b) => { return b.id - a.id } ) this.setState({ files }) } handleClick(file) { if (file.type === 'audio') { this.audio.setAttribute('src', mp3path(file)) this.audio.play() document.body.style.backgroundImage = 'url(' + pngpath(file) + ')' } } render() { const files = (this.state.files).map(toFilenamePair).sort(sortByFilename).map(fromPair).map( (file, i) => { if (! file) return return (