diff options
Diffstat (limited to 'app/client/modules/samplernn/samplernn.datasets.js')
| -rw-r--r-- | app/client/modules/samplernn/samplernn.datasets.js | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/app/client/modules/samplernn/samplernn.datasets.js b/app/client/modules/samplernn/samplernn.datasets.js new file mode 100644 index 0000000..5f15dbc --- /dev/null +++ b/app/client/modules/samplernn/samplernn.datasets.js @@ -0,0 +1,109 @@ +import { h, Component } from 'preact' +import { bindActionCreators } from 'redux' +import { connect } from 'react-redux' + +import { actions, parser } from '../../api' +import * as taskActions from '../../task/task.actions' +import * as systemActions from '../../system/system.actions' + +import Dataset from '../../dataset/dataset.component' + +import Group from '../../common/group.component' +import Slider from '../../common/slider.component' +import Select from '../../common/select.component' +import Button from '../../common/button.component' +import FileList from '../../common/fileList.component' +import TextInput from '../../common/textInput.component' + +class SampleRNNDatasets extends Component { + constructor(props){ + super() + // fetch file list + this.fileOptions = this.fileOptions.bind(this) + this.pickFile = this.pickFile.bind(this) + props.actions.folder.index({ module: 'samplernn' }) + props.actions.file.index({ module: 'samplernn' }) + } + pickFile(file){ + console.log('pick', file) + } + fileOptions(file){ + console.log(file) + if (file.activity === 'url' && !file.dataset) { + if (this.props.runner.cpu.status !== 'IDLE') { + return ( + <div className='gray'> + fetching... + </div> + ) + } else { + return ( + <div className='link' onClick={() => this.fetchURL(file.url)}> + fetch + </div> + ) + } + } + return ( + <div> + <div className='link' onClick={() => this.train(file)}>train</div> + {file.epoch == 0 && <div className='epochs'>{file.epochs} ep.</div>} + </div> + ) + } + fetchURL(url) { + console.log(url) + this.props.actions.task.start_task({ + activity: 'fetch', + module: 'samplernn', + dataset: 'test', + epochs: 1, + opt: { url } + }, { preempt: true, watch: true }) + } + render(){ + const { samplernn } = this.props + console.log(samplernn.upload) + // sort files?? + const module = { + name: 'samplernn', + datatype: 'audio', + } + return ( + <div className='app'> + <div className='heading'> + <h3>SampleRNN</h3> + </div> + <Dataset + canRename + canUpload + canAddURL + canDeleteFile + linkFiles + fileOptions={this.fileOptions} + onPick={this.handlePick} + module={module} + folder={samplernn.input.folder} + files={samplernn.input.files} + /> + </div> + ) + } +} + +const mapStateToProps = state => ({ + samplernn: state.module.samplernn, + runner: state.system.runner, + task: state.task, +}) + +const mapDispatchToProps = (dispatch, ownProps) => ({ + actions: { + folder: bindActionCreators(actions.folder, dispatch), + file: bindActionCreators(actions.file, dispatch), + task: bindActionCreators(taskActions, dispatch), + system: bindActionCreators(systemActions, dispatch), + } +}) + +export default connect(mapStateToProps, mapDispatchToProps)(SampleRNNDatasets) |
