diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2019-02-13 16:55:20 +0100 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2019-02-13 16:55:20 +0100 |
| commit | 91f106c840d0c6211f370d8b45f0fd8857636b6c (patch) | |
| tree | 6e0d1cbf89cf13b3d3292923969c28f56b5cc3bb /scraper/client/paper/paper.manager.js | |
| parent | d0dc5cd83f1c436185d247600c3c5be9360bf1ca (diff) | |
put info on endpoint
Diffstat (limited to 'scraper/client/paper/paper.manager.js')
| -rw-r--r-- | scraper/client/paper/paper.manager.js | 35 |
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) |
