summaryrefslogtreecommitdiff
path: root/scraper/client/paper/paper.manager.js
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2019-02-13 16:55:20 +0100
committerJules Laplace <julescarbon@gmail.com>2019-02-13 16:55:20 +0100
commit91f106c840d0c6211f370d8b45f0fd8857636b6c (patch)
tree6e0d1cbf89cf13b3d3292923969c28f56b5cc3bb /scraper/client/paper/paper.manager.js
parentd0dc5cd83f1c436185d247600c3c5be9360bf1ca (diff)
put info on endpoint
Diffstat (limited to 'scraper/client/paper/paper.manager.js')
-rw-r--r--scraper/client/paper/paper.manager.js35
1 files changed, 35 insertions, 0 deletions
diff --git a/scraper/client/paper/paper.manager.js b/scraper/client/paper/paper.manager.js
new file mode 100644
index 00000000..c52722e7
--- /dev/null
+++ b/scraper/client/paper/paper.manager.js
@@ -0,0 +1,35 @@
+import React, { Component } from 'react'
+import { bindActionCreators } from 'redux'
+import { connect } from 'react-redux'
+
+import * as actions from '../actions'
+
+import { Loader } from '../common'
+
+class PaperManager extends Component {
+ componentDidMount() {
+ this.props.actions.getPaperInfo(this.props.match.params.key)
+ }
+
+ componentDidUpdate(newProps) {
+ if (this.props.match.params.key !== newProps.match.params.key) {
+ this.props.actions.getPaperInfo(this.props.match.params.key)
+ }
+ }
+
+ render() {
+ if (!this.props.match.params.key) return null
+ if (this.props.api.paperInfo.loading) return <Loader />
+ if (!this.props.api.paperInfo.dataset) return <div className='paperInfo'>Metadata not found</div>
+ return null
+ }
+}
+
+const mapStateToProps = state => ({
+ api: state.api,
+})
+const mapDispatchToProps = dispatch => ({
+ actions: bindActionCreators({ ...actions }, dispatch),
+})
+
+export default connect(mapStateToProps, mapDispatchToProps)(PaperManager)