import { h, Component } from 'preact'
import { bindActionCreators } from 'redux'
import { connect } from 'react-redux'
import util from '../../../util'
import * as samplernnActions from '../samplernn.actions'
import * as samplernnTasks from '../samplernn.tasks'
import * as audioPlayerActions from '../../../common/audioPlayer/audioPlayer.actions'
import { Loading, CurrentTask, FileList, FileRow } from '../../../common'
import DatasetForm from '../../../dataset/dataset.form'
import UploadStatus from '../../../dataset/upload.status'
import DatasetComponent from '../../../dataset/dataset.component'
import samplernnModule from '../samplernn.module'
class SampleRNNShow extends Component {
constructor(props){
super(props)
this.datasetActions = this.datasetActions.bind(this)
}
componentWillMount(){
const id = this.props.match.params.id || localStorage.getItem('samplernn.last_id')
console.log('load dataset:', id)
const { match, samplernn, actions } = this.props
if (id === 'new') return
if (id) {
if (parseInt(id)) localStorage.setItem('samplernn.last_id', id)
if (! samplernn.folder || samplernn.folder.id !== id) {
// console.log('looooooooooad', id)
actions.load_directories(id)
}
} else {
this.props.history.push('/samplernn/new/')
}
}
render(){
const { samplernn, runner, match, history } = this.props
const { folderLookup } = (samplernn.data || {})
// console.log(runner)
const folder = (folderLookup || {})[samplernn.folder_id] || {}
return (
remote.train_task(dataset, samplernn.folder_id, 1)}>train
remote.train_task(dataset, samplernn.folder_id, 2)}>2x
remote.train_task(dataset, samplernn.folder_id, 4)}>4x
remote.train_task(dataset, samplernn.folder_id, 6)}>6x
remote.train_task(dataset, samplernn.folder_id, 18)}>18x
remote.generate_task(dataset, samplernn.folder_id, 5, 12)}>generate
remote.generate_task(dataset, samplernn.folder_id, 0.5, 120)}>/2
remote.generate_task(dataset, samplernn.folder_id, 0.25, 240)}>/4
remote.generate_task(dataset, samplernn.folder_id, 0.125, 480)}>/8
remote.generate_task(dataset, samplernn.folder_id, 0.0625, 960)}>/16
remote.generate_task(dataset, samplernn.folder_id, 2, 30)}>2s
remote.generate_task(dataset, samplernn.folder_id, 10, 6)}>10s
remote.generate_task(dataset, samplernn.folder_id, 15, 4)}>15s
remote.generate_task(dataset, samplernn.folder_id, 30, 2)}>30s
remote.generate_task(dataset, samplernn.folder_id, 60, 1)}>1m
{dataset.isBuilt
?
{'fetched '}
remote.clear_cache_task(dataset)}>x
: isFetching
?
{'fetching'}
:
remote.fetch_task(input.url, samplernn.folder_id, input.id, dataset.name)}>fetch
}
)
}
handlePick(file){
// console.log(file)
this.props.audioPlayer.play(file)
}
}
const mapStateToProps = state => ({
samplernn: state.module.samplernn,
runner: state.system.runner,
})
const mapDispatchToProps = (dispatch, ownProps) => ({
actions: bindActionCreators(samplernnActions, dispatch),
remote: bindActionCreators(samplernnTasks, dispatch),
audioPlayer: bindActionCreators(audioPlayerActions, dispatch),
})
export default connect(mapStateToProps, mapDispatchToProps)(SampleRNNShow)