diff options
Diffstat (limited to 'frontend/views/index/containers')
| -rw-r--r-- | frontend/views/index/containers/graph.edit.js | 53 | ||||
| -rw-r--r-- | frontend/views/index/containers/graph.index.js | 28 | ||||
| -rw-r--r-- | frontend/views/index/containers/graph.new.js | 44 |
3 files changed, 125 insertions, 0 deletions
diff --git a/frontend/views/index/containers/graph.edit.js b/frontend/views/index/containers/graph.edit.js new file mode 100644 index 0000000..2f8c7fb --- /dev/null +++ b/frontend/views/index/containers/graph.edit.js @@ -0,0 +1,53 @@ +import React, { Component } from 'react' +import { Link } from 'react-router-dom' +import { connect } from 'react-redux' + +import { history } from '../../../store' +import actions from '../../../actions' + +import { Loader } from '../../../common' + +import GraphForm from '../components/graph.form' + +class GraphEdit extends Component { + componentDidMount() { + actions.graph.show(this.props.match.params.id) + } + + handleSubmit(data) { + actions.graph.update(data) + .then(response => { + // response + console.log(response) + history.push('/graph/' + data.id + '/show/') + }) + } + + render() { + const { show } = this.props.graph + if (show.loading || !show.res) { + return ( + <div className='form'> + <h1>Loading...</h1> + <Loader /> + </div> + ) + } + return ( + <GraphForm + data={show.res} + onSubmit={this.handleSubmit.bind(this)} + /> + ) + } +} + +const mapStateToProps = state => ({ + graph: state.graph, +}) + +const mapDispatchToProps = dispatch => ({ + // searchActions: bindActionCreators({ ...searchActions }, dispatch), +}) + +export default connect(mapStateToProps, mapDispatchToProps)(GraphEdit) diff --git a/frontend/views/index/containers/graph.index.js b/frontend/views/index/containers/graph.index.js new file mode 100644 index 0000000..b18c768 --- /dev/null +++ b/frontend/views/index/containers/graph.index.js @@ -0,0 +1,28 @@ +import React, { Component } from 'react' +import { Link } from 'react-router-dom' +import { bindActionCreators } from 'redux' +import { connect } from 'react-redux' + +// import actions from '../../actions' +// import * as uploadActions from './upload.actions' + +class GraphIndex extends Component { + render() { + return ( + <div className='graphIndex'> + <b>welcome, swimmer</b> + <Link to='/index/new'>+ new project</Link> + </div> + ) + } +} + +const mapStateToProps = state => ({ + // upload: state.upload, +}) + +const mapDispatchToProps = dispatch => ({ + // uploadActions: bindActionCreators({ ...uploadActions }, dispatch), +}) + +export default connect(mapStateToProps, mapDispatchToProps)(GraphIndex) diff --git a/frontend/views/index/containers/graph.new.js b/frontend/views/index/containers/graph.new.js new file mode 100644 index 0000000..186f8f7 --- /dev/null +++ b/frontend/views/index/containers/graph.new.js @@ -0,0 +1,44 @@ +import React, { Component } from 'react' +import { Link } from 'react-router-dom' +import { connect } from 'react-redux' + +import { history } from '../../../store' +import actions from '../../../actions' + +import GraphForm from '../components/graph.form' + +class GraphNew extends Component { + handleSubmit(data) { + console.log(data) + actions.graph.create(data) + .then(res => { + console.log(res) + if (res.res && res.res.id) { + history.push('/graph/' + res.res.name) + } + }) + .catch(err => { + console.error('error') + }) + } + + render() { + return ( + <GraphForm + isNew + data={{}} + onSubmit={this.handleSubmit.bind(this)} + /> + ) + } +} + +const mapStateToProps = state => ({ + graph: state.graph, +}) + +const mapDispatchToProps = dispatch => ({ + // searchActions: bindActionCreators({ ...searchActions }, dispatch), +}) + +export default connect(mapStateToProps, mapDispatchToProps)(GraphNew) |
