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 | |
| parent | d0dc5cd83f1c436185d247600c3c5be9360bf1ca (diff) | |
put info on endpoint
Diffstat (limited to 'scraper')
| -rw-r--r-- | scraper/client/app.js | 3 | ||||
| -rw-r--r-- | scraper/client/common/header.component.js | 2 | ||||
| -rw-r--r-- | scraper/client/paper/index.js | 6 | ||||
| -rw-r--r-- | scraper/client/paper/paper.info.js | 1 | ||||
| -rw-r--r-- | scraper/client/paper/paper.manager.js (renamed from scraper/client/paper/paper.container.js) | 18 |
5 files changed, 19 insertions, 11 deletions
diff --git a/scraper/client/app.js b/scraper/client/app.js index 5a0e5cc7..4bc6276c 100644 --- a/scraper/client/app.js +++ b/scraper/client/app.js @@ -13,8 +13,9 @@ export default class App extends Component { <Header /> <div className='app'> <div className='body'> + <Route path="/paper/:key/" component={Paper.Manager} /> <Switch> - <Route exact path="/paper/:key/" component={Paper.Container} /> + <Route exact path="/paper/:key/info/" component={Paper.Info} /> </Switch> </div> </div> diff --git a/scraper/client/common/header.component.js b/scraper/client/common/header.component.js index 5a100e90..a14d925f 100644 --- a/scraper/client/common/header.component.js +++ b/scraper/client/common/header.component.js @@ -15,7 +15,7 @@ class Header extends Component { pickPaper(e) { console.log(e.target.value) - history.push('/paper/' + e.target.value) + history.push('/paper/' + e.target.value + '/info/') // this.props.actions.getPaperData(e.target.value) } 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.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 ( <div className='paperInfo'> <h2>{dataset.name_full}</h2> diff --git a/scraper/client/paper/paper.container.js b/scraper/client/paper/paper.manager.js index eeb0dfa3..c52722e7 100644 --- a/scraper/client/paper/paper.container.js +++ b/scraper/client/paper/paper.manager.js @@ -5,19 +5,23 @@ import { connect } from 'react-redux' import * as actions from '../actions' import { Loader } from '../common' -import PaperInfo from './paper.info' -class PaperContainer extends Component { +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 null - return ( - <PaperInfo /> - ) + if (!this.props.api.paperInfo.dataset) return <div className='paperInfo'>Metadata not found</div> + return null } } @@ -28,4 +32,4 @@ const mapDispatchToProps = dispatch => ({ actions: bindActionCreators({ ...actions }, dispatch), }) -export default connect(mapStateToProps, mapDispatchToProps)(PaperContainer) +export default connect(mapStateToProps, mapDispatchToProps)(PaperManager) |
