From 91f106c840d0c6211f370d8b45f0fd8857636b6c Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Wed, 13 Feb 2019 16:55:20 +0100 Subject: put info on endpoint --- scraper/client/paper/index.js | 6 ++++-- scraper/client/paper/paper.container.js | 31 ----------------------------- scraper/client/paper/paper.info.js | 1 + scraper/client/paper/paper.manager.js | 35 +++++++++++++++++++++++++++++++++ 4 files changed, 40 insertions(+), 33 deletions(-) delete mode 100644 scraper/client/paper/paper.container.js create mode 100644 scraper/client/paper/paper.manager.js (limited to 'scraper/client/paper') diff --git a/scraper/client/paper/index.js b/scraper/client/paper/index.js index 60206179..c10ea011 100644 --- a/scraper/client/paper/index.js +++ b/scraper/client/paper/index.js @@ -1,8 +1,10 @@ -import Container from './paper.container' +import Manager from './paper.manager' +import Info from './paper.info' import './paper.css' // import './search.css' export { - Container + Manager, + Info, } diff --git a/scraper/client/paper/paper.container.js b/scraper/client/paper/paper.container.js deleted file mode 100644 index eeb0dfa3..00000000 --- a/scraper/client/paper/paper.container.js +++ /dev/null @@ -1,31 +0,0 @@ -import React, { Component } from 'react' -import { bindActionCreators } from 'redux' -import { connect } from 'react-redux' - -import * as actions from '../actions' - -import { Loader } from '../common' -import PaperInfo from './paper.info' - -class PaperContainer extends Component { - componentDidMount() { - this.props.actions.getPaperInfo(this.props.match.params.key) - } - - render() { - if (this.props.api.paperInfo.loading) return - if (!this.props.api.paperInfo.dataset) return null - return ( - - ) - } -} - -const mapStateToProps = state => ({ - api: state.api, -}) -const mapDispatchToProps = dispatch => ({ - actions: bindActionCreators({ ...actions }, dispatch), -}) - -export default connect(mapStateToProps, mapDispatchToProps)(PaperContainer) diff --git a/scraper/client/paper/paper.info.js b/scraper/client/paper/paper.info.js index dab4ce5b..a8553c9b 100644 --- a/scraper/client/paper/paper.info.js +++ b/scraper/client/paper/paper.info.js @@ -10,6 +10,7 @@ class PaperInfo extends Component { render() { const { paperInfo, unknownCitations } = this.props.api const { dataset, statistics, address } = paperInfo + if (!dataset) return null return (

{dataset.name_full}

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 + if (!this.props.api.paperInfo.dataset) return
Metadata not found
+ return null + } +} + +const mapStateToProps = state => ({ + api: state.api, +}) +const mapDispatchToProps = dispatch => ({ + actions: bindActionCreators({ ...actions }, dispatch), +}) + +export default connect(mapStateToProps, mapDispatchToProps)(PaperManager) -- cgit v1.2.3-70-g09d2