summaryrefslogtreecommitdiff
path: root/app/client/modules/pix2pixhd/views/sequence.editor.js
blob: 96938058e78bb48ee957418edd470c3742353b43 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import { h, Component } from 'preact'
import { bindActionCreators } from 'redux'
import { connect } from 'react-redux'
import { Route, Link } from 'react-router-dom'

import { Loading, FileList, FileViewer } from '../../common'

import actions from '../actions'

class SequenceEditor extends Component {
  state = {
    dir: '/',
    files: [],
    loading: true
  }
  componentDidMount() {
    this.fetch(this.state.dir)
  }
  handlePick(file) {
    console.log(file)
    if (file.dir) {
      this.fetch([this.state.dir, file.name].join('/').replace('//','/'))
    } else {
      this.fetchFile([this.state.dir, file.name].join('/').replace('//','/'))
    }
  }
  fetch(dir) {
    console.log('fetch', dir)
    const { tool: module } = this.props.app
    this.setState({ dir, file: null, loading: true })
    actions.socket.list_directory({ module, dir }).then(files => {
      console.log(files)
      this.setState({ dir, files, loading: false })
    })
  }
  fetchFile(fn) {
    console.log('fetch file', fn)
    const { tool: module } = this.props.app
    this.setState({ file: null, loadingFile: true })
    actions.socket.read_file({ module, fn }).then(file => {
      console.log(file)
      this.setState({ file, loadingFile: false })
    })
  }
  render() {
    const { app } = this.props
    const {
      loading, dir, files,
      loadingFile, file,
    } = this.state
    console.log(this.props, this.state)
    // return (
    //   <div className='app browser'>
    //     <h1>{dir}{dir[dir.length-1] !== '/' && '/'}</h1>
    //     {app.tool}<br/>
    //     {loading && <Loading />}
    //     <FileList
    //       files={files}
    //       groupDirectories
    //       parentDirectory={dir !== '/'}
    //       orderBy='name asc'
    //       fields={'name datetime size'}
    //       onClick={(file, e) => {
    //         e.preventDefault()
    //         e.stopPropagation()
    //         console.log('picked a result', file)
    //         this.handlePick(file)
    //       }}
    //       onClickParent={e => {
    //         console.log('navigate up')
    //         this.fetch(this.state.dir.split('/').slice(0, -1).join('/') || '/')
    //       }}
    //     />
    //     {loadingFile && <Loading />}
    //     {file && <FileViewer file={file} />}
    //   </div>
    // )
  }
}

const mapStateToProps = state => ({
  app: state.system.app,
})

const mapDispatchToProps = (dispatch, ownProps) => ({
  actions: bindActionCreators({}, dispatch),
})

export default connect(mapStateToProps, mapDispatchToProps)(SequenceEditor)