summaryrefslogtreecommitdiff
path: root/frontend/app/views/graph/components/page.edit.js
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2020-09-26 14:56:02 +0200
committerJules Laplace <julescarbon@gmail.com>2020-09-26 14:56:02 +0200
commita17b76ac75f506f5da6fe8adf9c36632b60d4226 (patch)
treeabb0af0c4409b830dea2ef808c146223ee973933 /frontend/app/views/graph/components/page.edit.js
parent2231a6e1c05b07bb7ec5906716aedec93d02429c (diff)
refactor to use app-rooted js imports
Diffstat (limited to 'frontend/app/views/graph/components/page.edit.js')
-rw-r--r--frontend/app/views/graph/components/page.edit.js65
1 files changed, 65 insertions, 0 deletions
diff --git a/frontend/app/views/graph/components/page.edit.js b/frontend/app/views/graph/components/page.edit.js
new file mode 100644
index 0000000..4025726
--- /dev/null
+++ b/frontend/app/views/graph/components/page.edit.js
@@ -0,0 +1,65 @@
+import React, { Component } from 'react'
+import { Link } from 'react-router-dom'
+import { connect } from 'react-redux'
+import { bindActionCreators } from 'redux'
+
+import { history } from 'app/store'
+import actions from 'app/actions'
+import * as siteActions from 'app/views/site/site.actions'
+import * as graphActions from 'app/views/graph/graph.actions'
+
+import { Loader } from 'app/common'
+
+import PageForm from '../components/page.form'
+
+class PageEdit extends Component {
+ componentDidMount() {
+ // actions.page.show(this.props.match.params.id)
+ }
+
+ handleSubmit(data) {
+ const { path: graphPath } = this.props.graph.show.res
+ const { path: oldPagePath } = this.props.page.show.res
+ const { path: newPagePath } = data
+ actions.page.update(data)
+ .then(response => {
+ // console.log(response)
+ actions.site.setSiteTitle(response.res.title)
+ this.props.graphActions.hideEditPageForm()
+ if (oldPagePath !== newPagePath) {
+ const newPath = '/' + graphPath + '/' + newPagePath
+ history.push(newPath)
+ }
+ })
+ }
+
+ render() {
+ const { show } = this.props.page
+ if (show.loading || !show.res) {
+ return (
+ <div className='form'>
+ <Loader />
+ </div>
+ )
+ }
+ return (
+ <PageForm
+ data={show.res}
+ graph={this.props.graph.show.res}
+ onSubmit={this.handleSubmit.bind(this)}
+ />
+ )
+ }
+}
+
+const mapStateToProps = state => ({
+ graph: state.graph,
+ page: state.page,
+})
+
+const mapDispatchToProps = dispatch => ({
+ siteActions: bindActionCreators({ ...siteActions }, dispatch),
+ graphActions: bindActionCreators({ ...graphActions }, dispatch),
+})
+
+export default connect(mapStateToProps, mapDispatchToProps)(PageEdit)