import { h, Component } from 'preact'
import { bindActionCreators } from 'redux'
import { connect } from 'react-redux'
import util from '../../../util'
import * as pix2pixhdActions from '../pix2pixhd.actions'
import * as pix2pixhdTasks from '../pix2pixhd.tasks'
import {
Loading,
FileList, FileRow,
Select, SelectGroup, Group, Param, Button,
TextInput, NumberInput,
CurrentTask, TaskList,
AugmentationGrid,
} from '../../../common'
import DatasetForm from '../../../dataset/dataset.form'
import NewDatasetForm from '../../../dataset/dataset.new'
import UploadStatus from '../../../dataset/upload.status'
import DatasetComponent from '../../../dataset/dataset.component'
import SequenceEditor from './sequence.editor'
import pix2pixhdModule from '../pix2pixhd.module'
class Pix2PixHDTrain extends Component {
constructor(props){
super(props)
this.handleChange = this.handleChange.bind(this)
this.state = {
checkpoint_name: 'PLACEHOLDER',
epoch: 'latest',
augment_name: '',
augment_take: 100,
augment_make: 20,
}
}
componentDidMount(){
const id = this.props.match.params.id || localStorage.getItem('pix2pixhd.last_id')
const dataset = localStorage.getItem('pix2pixhd.last_dataset')
console.log('load dataset:', id, dataset)
const { match, pix2pixhd, actions } = this.props
if (id === 'new') return
if (id) {
if (parseInt(id)) localStorage.setItem('pix2pixhd.last_id', id)
if (! pix2pixhd.folder || pix2pixhd.folder.id !== id) {
actions.load_directories(id)
}
} else {
this.props.history.push('/pix2pixhd/new/')
}
if (dataset) {
this.setState({ checkpoint_name: dataset })
}
}
componentDidUpdate(prevProps, prevState){
if (prevState.checkpoint_name !== this.state.checkpoint_name) {
localStorage.setItem('pix2pixhd.last_dataset', this.state.checkpoint_name)
this.setState({ epoch: 'latest' })
this.props.actions.list_epochs(this.state.checkpoint_name)
this.props.actions.count_dataset(this.state.checkpoint_name)
}
}
handleChange(name, value){
console.log('name', name, 'value', value)
this.setState({ [name]: value })
}
interrupt(){
this.props.actions.queue.stop_task('gpu')
}
render(){
if (this.props.pix2pixhd.loading) {
return