1 import { Component, Input, Output, OnChanges, EventEmitter } from '@angular/core'
2 import { Observable } from 'rxjs'
3 import { Video } from '@app/shared/video/video.model'
4 import { RecommendationInfo } from '@app/shared/video/recommendation-info.model'
5 import { RecommendedVideosStore } from '@app/videos/recommendations/recommended-videos.store'
6 import { User } from '@app/shared'
9 selector: 'my-recommended-videos',
10 templateUrl: './recommended-videos.component.html'
12 export class RecommendedVideosComponent implements OnChanges {
13 @Input() inputRecommendation: RecommendationInfo
15 @Output() gotRecommendations = new EventEmitter<Video[]>()
17 readonly hasVideos$: Observable<boolean>
18 readonly videos$: Observable<Video[]>
21 private store: RecommendedVideosStore
23 this.videos$ = this.store.recommendations$
24 this.hasVideos$ = this.store.hasRecommendations$
25 this.videos$.subscribe(videos => this.gotRecommendations.emit(videos))
28 public ngOnChanges (): void {
29 if (this.inputRecommendation) {
30 this.store.requestNewRecommendations(this.inputRecommendation)
35 this.store.requestNewRecommendations(this.inputRecommendation)