diff options
Diffstat (limited to 'scraper/client/paper/paper.citations.js')
| -rw-r--r-- | scraper/client/paper/paper.citations.js | 86 |
1 files changed, 15 insertions, 71 deletions
diff --git a/scraper/client/paper/paper.citations.js b/scraper/client/paper/paper.citations.js index 5c8e0e0c..f0e9ea26 100644 --- a/scraper/client/paper/paper.citations.js +++ b/scraper/client/paper/paper.citations.js @@ -5,84 +5,28 @@ import { Link } from 'react-router-dom' import * as actions from '../actions' -import { TableObject } from '../common' +import { Loader } from '../common' import { USES_DATASET } from '../types' +import CitationList from './citationList.component' + class PaperCitations extends Component { - componentDidMount() { - this.props.actions.getVerifications() + componentDidUpdate(prevProps) { + if (this.props.api.paperInfo.dataset !== prevProps.api.paperInfo.dataset) { + this.props.actions.getVerificationsDataset(this.props.api.paperInfo.dataset.key) + } } render() { - const { dataset, citations } = this.props.api.paperInfo - let { verifications } = this.props.api.verifications - verifications = verifications || {} - if (!dataset || !citations) return null - console.log('rendering citations...') - // console.log(citations) + const { paperInfo, unknownCitations, verifications } = this.props.api + const { dataset, citations } = paperInfo + if (!dataset || !citations || !verifications[dataset.key]) return <Loader /> + return ( - <div className='citations'> - <h2>{dataset.name_full}: Citations</h2> - <ul> - {citations.map((citation, i) => { - let cite = { ...citation } - cite.id = { - _raw: true, - value: <Link to={'/paper/' + dataset.key + '/verify/' + citation.id}>{citation.id}</Link> - } - cite.pdf = { - _raw: true, - value: (cite.pdf && cite.pdf.length) ? <a href={cite.pdf[0]} rel='noopener noreferrer' target="_blank">[pdf]</a> : "no pdf" - } - cite.s2 = { - _raw: true, - value: <a - href={'https://www.semanticscholar.org/paper/' + citation.id} - target="_blank" - rel="noopener noreferrer" - className={'pdfLink'} - >{'[semantic scholar]'}</a> - } - cite.addresses = { - _raw: true, - value: cite.addresses.map((address, j) => ( - <div key={j}>{address.name}{', '}<span className='type'>{address.type}</span></div> - )) - } - if (citation.id in verifications && verifications[citation.id].dataset === dataset.key) { - const verification = verifications[citation.id] - cite.verified = { - _raw: true, - value: verification.uses_dataset === USES_DATASET.YES - ? <span className='verified'>uses dataset</span> - : verification.uses_dataset === USES_DATASET.NO - ? <span className='unverified'>{"doesn't use dataset"}</span> - : verification.uses_dataset === 'TRUE' - ? <span className='verified'>uses dataset</span> - : verification.uses_dataset === 'FALSE' - ? <span className='unverified'>{"doesn't use dataset"}</span> - : <span className='unknown'>{"not enough information"}</span> - } - } - else { - cite.verified = { - _raw: true, - value: <span className='unknown'>unknown</span> - } - } - return ( - <li key={i}> - <TableObject - summary - object={cite} - tag={cite.title} - order={['id', 'pdf', 's2', 'year', 'addresses', 'verified']} - /> - </li> - ) - })} - </ul> - </div> + <CitationList + title={dataset.name_full + ': Citations'} + citations={citations.concat(unknownCitations.citations)} + /> ) } } |
