visualizza infobox wikipedia e propieta wikidata

This commit is contained in:
matteo
2018-12-12 19:16:18 +01:00
parent b0dbba7673
commit 2b58b105dd
+40 -12
View File
@@ -3,6 +3,7 @@ import React, { Component } from 'react';
import wikijs from 'wikijs'; import wikijs from 'wikijs';
import wdk from 'wikidata-sdk'; import wdk from 'wikidata-sdk';
import axios from 'axios'; import axios from 'axios';
import { Table } from 'react-bootstrap';
class Wikipedia extends Component { class Wikipedia extends Component {
constructor(props) { constructor(props) {
@@ -120,24 +121,51 @@ class Wikipedia extends Component {
// } // }
render() { render() {
const { wikidata, error, isLoaded } = this.state; const { wikidata, wikipedia, musicbrainz, error, isLoaded } = this.state;
if (error) { if (error) {
return <React.Fragment>Error: {error.message}</React.Fragment>; return <React.Fragment>Error: {error.message}</React.Fragment>;
} else if (!isLoaded) { } else if (!isLoaded) {
return <React.Fragment>Loading...</React.Fragment>; return <React.Fragment>Loading...</React.Fragment>;
} else { } else {
let keys = {wikipedia : Object.keys(this.state.wikipedia[0].general),
wikidata :Object.keys(this.state.wikidata.claims)}
return ( return (
<div> // <div>
<p>risultato ricerca wikidata:</p> // <p>risultato ricerca wikidata:</p>
{ wikidata && <div> // { wikidata && <div>
<p>{ wikidata.labels.en.value }</p> // <p>{ wikidata.labels.en.value }</p>
<p>{ wikidata.id }</p> // <p>{ wikidata.id }</p>
{ wikidata.sitelinks.enwiki && <p>{ wikidata.sitelinks.enwiki.title} </p>} // { wikidata.sitelinks.enwiki && <p>{ wikidata.sitelinks.enwiki.title} </p>}
</div> } // </div> }
<p>wikipedia summary:</p> // <p>wikipedia summary:</p>
{this.state.wikipedia && <p>{ this.state.wikipedia[1]}</p>} // {this.state.wikipedia && <p>{ this.state.wikipedia[1]}</p>}
</div> // </div>
); //
// <React.Fragment>
<Table striped bordered hover size="sm">
<tbody>
{
keys.wikipedia.map(key => (
<tr>
<td>{key}</td>
<td> {wikipedia[0].general[key].toLocaleString()}</td>
</tr>
))
}
{
keys.wikidata.map(key => (
<tr>
<td>{key}</td>
<td> {wikidata.claims[key][0].mainsnak.datavalue.value.toLocaleString()}</td>
</tr>
))
}
</tbody>
</Table>
// </React.Fragment>
// </Table>
);
} }
} }
} }