This commit is contained in:
matteo
2019-02-17 16:20:35 +01:00
2 changed files with 31 additions and 29 deletions
+5 -7
View File
@@ -6,12 +6,10 @@ import {Link} from "react-router-dom";
import moment from "moment"; import moment from "moment";
class RecommenderRandom extends Component{ class RecommenderRandom extends Component{
constructor(props){ state={
super(props);
this.state={
items : [], items : [],
}; }
}
ISO_8601parse(a) { ISO_8601parse(a) {
@@ -22,7 +20,7 @@ class RecommenderRandom extends Component{
let pos = Math.floor(Math.random() * 500); let pos = Math.floor(Math.random() * 500);
let pageToken = createpageToken(pos); /* createPageToken(pos) restituisce il pageToken relativo al numero let pageToken = createpageToken(pos); /* createPageToken(pos) restituisce il pageToken relativo al numero
di pagina che gli viene passato(in questo caso pos) che verrai poi usato di pagina che gli viene passato(in questo caso pos) che verrai poi usato
come paramentro da axios per ottenere una determinata pagina di risultati */ come parametro da axios per ottenere una determinata pagina di risultati */
axios.get("https://www.googleapis.com/youtube/v3/search", { axios.get("https://www.googleapis.com/youtube/v3/search", {
params: { params: {
@@ -59,7 +57,7 @@ class RecommenderRandom extends Component{
> >
<Card.Img <Card.Img
src={item.snippet.thumbnails.high.url} src={item.snippet.thumbnails.high.url}
alt={'Thumbnail of ' + item.title} alt={'Thumbnail of ' + item.snippet.title}
/> />
<Card.ImgOverlay> <Card.ImgOverlay>
<Card.Title className="bg-dark d-inline text-white"> <Card.Title className="bg-dark d-inline text-white">
+26 -22
View File
@@ -6,33 +6,23 @@ import moment from "moment";
class Related extends Component { class Related extends Component {
constructor(props) { state={
super(props); videoId : localStorage['lastId'],
this.state={
videoId : '0J2QdDbelmY',
items : [] items : []
} }
}
ISO_8601parse(a) { ISO_8601parse(a) {
return moment(a, moment.ISO_8601).format('ddd, DD/MM/YYYY hh:mm:ss'); return moment(a, moment.ISO_8601).format('ddd, DD/MM/YYYY hh:mm:ss');
} }
componentWillMount() {
if(this.props.match.params.id){
if(this.props.match.params.id === this.state.videoId){}
else{
this.setState({videoId: this.props.match.params.id});
}
}
}
componentDidMount() { componentDidMount() {
axios.get("https://www.googleapis.com/youtube/v3/search",{ axios.get("https://www.googleapis.com/youtube/v3/search",{
params:{ params:{
'part': 'snippet', 'part': 'snippet',
'relatedToVideoId' : this.state.videoId, 'relatedToVideoId' : this.props.match.params.id,
'type' : 'video', 'type' : 'video',
'maxResults' : '21', 'maxResults' : '22',
'key': 'AIzaSyA21Odw9UdfiOJnxvA_eDfOW0OxuUfHKig' 'key': 'AIzaSyA21Odw9UdfiOJnxvA_eDfOW0OxuUfHKig'
} }
}).then( }).then(
@@ -40,7 +30,6 @@ class Related extends Component {
this.setState({ this.setState({
items: response.data.items, items: response.data.items,
}) })
console.log(response);
}, },
error => { error => {
console.error(error); console.error(error);
@@ -48,10 +37,26 @@ class Related extends Component {
) )
} }
componentWillUpdate(nextProps, nextState) { componentDidUpdate(prevProps,prevState){
if(nextProps.match.params.id === this.state.videoId){} if (prevProps.match.params.videoId !== this.state.videoId){
else if( nextProps.match.params.id){ axios.get("https://www.googleapis.com/youtube/v3/search",{
this.setState({videoId: nextProps.match.params.id}); params:{
'part': 'snippet',
'relatedToVideoId' : this.props.match.params.id,
'type' : 'video',
'maxResults' : '22',
'key': 'AIzaSyA21Odw9UdfiOJnxvA_eDfOW0OxuUfHKig'
}
}).then(
response => {
this.setState({
items: response.data.items,
})
},
error => {
console.error(error);
}
)
} }
} }
@@ -70,13 +75,12 @@ class Related extends Component {
> >
<Card.Img <Card.Img
src={item.snippet.thumbnails.high.url} src={item.snippet.thumbnails.high.url}
alt={'Thumbnail of ' + item.title} alt={'Thumbnail of ' + item.snippet.title}
/> />
<Card.ImgOverlay> <Card.ImgOverlay>
<Card.Title className="bg-dark d-inline text-white"> <Card.Title className="bg-dark d-inline text-white">
{item.snippet.title}<br/> {item.snippet.title}<br/>
{item.snippet.channelTitle} - {ISO_8601parse(item.snippet.publishedAt)} {item.snippet.channelTitle} - {ISO_8601parse(item.snippet.publishedAt)}
</Card.Title> </Card.Title>
</Card.ImgOverlay> </Card.ImgOverlay>
</Link> </Link>