diff options
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) |
