Aggiornato reccomender Related

This commit is contained in:
Giampiero Galeazzi
2019-02-17 16:18:34 +01:00
parent 36932c5c3c
commit f0351615b7
2 changed files with 30 additions and 28 deletions
+3 -5
View File
@@ -6,14 +6,12 @@ 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) {
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');
} }
@@ -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>