summaryrefslogtreecommitdiff
path: root/scraper/client/paper/paper.citations.js
diff options
context:
space:
mode:
Diffstat (limited to 'scraper/client/paper/paper.citations.js')
-rw-r--r--scraper/client/paper/paper.citations.js86
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)}
+ />
)
}
}