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.js42
1 files changed, 23 insertions, 19 deletions
diff --git a/scraper/client/paper/paper.citations.js b/scraper/client/paper/paper.citations.js
index 5c8e0e0c..c55599e0 100644
--- a/scraper/client/paper/paper.citations.js
+++ b/scraper/client/paper/paper.citations.js
@@ -5,26 +5,32 @@ import { Link } from 'react-router-dom'
import * as actions from '../actions'
-import { TableObject } from '../common'
+import { TableObject, Loader } from '../common'
import { USES_DATASET } from '../types'
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 />
+ let verifiedLookup = verifications[dataset.key] || {}
+ // console.log(verifications)
+
return (
<div className='citations'>
<h2>{dataset.name_full}: Citations</h2>
<ul>
- {citations.map((citation, i) => {
+ {citations.concat(unknownCitations.citations)
+ .map(citation => [citation.title, verifiedLookup[citation.id] ? verifiedLookup[citation.id].uses_dataset : USES_DATASET.UNKNOWN, citation])
+ .sort((a,b) => (b[1] - a[1] || (a[0].localeCompare(b[0]))))
+ .map((pair, i) => {
+ const [ title, uses_dataset, citation ] = pair
let cite = { ...citation }
cite.id = {
_raw: true,
@@ -32,7 +38,9 @@ class PaperCitations extends Component {
}
cite.pdf = {
_raw: true,
- value: (cite.pdf && cite.pdf.length) ? <a href={cite.pdf[0]} rel='noopener noreferrer' target="_blank">[pdf]</a> : "no pdf"
+ value: (cite.pdf && cite.pdf.length)
+ ? cite.pdf.map((pdf, i) => <a key={'pdf_' + i} href={pdf} rel='noopener noreferrer' target="_blank">[pdf]</a>)
+ : "no pdf"
}
cite.s2 = {
_raw: true,
@@ -45,23 +53,19 @@ class PaperCitations extends Component {
}
cite.addresses = {
_raw: true,
- value: cite.addresses.map((address, j) => (
+ 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]
+ if (citation.id in verifiedLookup) {
+ const verification = verifiedLookup[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>
+ : <span className='unknown'>{"not enough information"}</span>
}
}
else {