diff --git a/frontend/src/app/components/home/browse/browse.component.html b/frontend/src/app/components/home/browse/browse.component.html index 7116474..7d6f4e1 100644 --- a/frontend/src/app/components/home/browse/browse.component.html +++ b/frontend/src/app/components/home/browse/browse.component.html @@ -14,9 +14,11 @@ " [screenWidth]="checkScreenWidth()" [currentMovie]="currentMovie" + [favoriteMovies]="favoriteMovies" (playMovie)="playVideo($event)" (movieIsUploadedChange)="onMovieIsUploadedChange($event)" (moviesChange)="onMoviesChange($event)" + (favoriteMovieChange)="onFavoriteMovieChange($event)" >
@@ -28,6 +30,7 @@ " [movies]="movies" [currentMovie]="currentMovie[0]?.id" + [favoriteMovies]="favoriteMovies" (currentMovieId)="currentMovieId($event)" > } @else { diff --git a/frontend/src/app/components/home/browse/browse.component.ts b/frontend/src/app/components/home/browse/browse.component.ts index 1a16239..e4fe8e9 100644 --- a/frontend/src/app/components/home/browse/browse.component.ts +++ b/frontend/src/app/components/home/browse/browse.component.ts @@ -8,6 +8,7 @@ import { CommonModule } from '@angular/common'; import { VideoPlayerComponent } from './video-player/video-player.component'; import { BtnSmallComponent } from '../../../shared/components/buttons/btn-small/btn-small.component'; import { UploadMovieComponent } from './upload-movie/upload-movie.component'; +import { UserService } from '../../../services/user.service'; @Component({ selector: 'app-browse', @@ -27,6 +28,7 @@ import { UploadMovieComponent } from './upload-movie/upload-movie.component'; export class BrowseComponent implements OnInit { @ViewChild(VideoPlayerComponent) videoPlayer!: VideoPlayerComponent; movies: any[] = []; + favoriteMovies: number[] = []; currentMovie: any[] = []; playMovie: string = ''; isWideScreen: boolean = false; @@ -40,16 +42,34 @@ export class BrowseComponent implements OnInit { constructor( private authService: AuthService, - private movieService: MovieService + private movieService: MovieService, + public userService: UserService ) {} async ngOnInit() { + this.loadLikedMovies(); await this.loadAllMovies(); if (this.checkScreenWidth()) { this.currentMovie.length === 0 ? this.loadRandomMovie() : null; } } + async loadLikedMovies() { + try { + const likedMovies = await this.userService.getLikedMovies(); + this.favoriteMovies = likedMovies.liked_videos; + } catch (error) { + console.error(error); + } + } + + updateLikeMovies() { + const body = { + liked_videos: this.favoriteMovies, + }; + this.userService.updateLikedMovies(body); + } + onMoviesChange(updatedMovies: any[]) { if (this.checkScreenWidth()) { this.loadRandomMovie(); @@ -66,6 +86,11 @@ export class BrowseComponent implements OnInit { this.movieIsUploaded = newStatus; } + onFavoriteMovieChange(favoriteMovies: any) { + this.favoriteMovies = favoriteMovies; + this.updateLikeMovies(); + } + changeResolution(resolution: '480p' | '720p' | '1080p') { if (this.videoPlayer && this.movieIsUploaded[resolution.replace('p', '')]) { this.videoPlayer.switchResolution(resolution); diff --git a/frontend/src/app/components/home/browse/categories/categories.component.html b/frontend/src/app/components/home/browse/categories/categories.component.html index e998411..6023588 100644 --- a/frontend/src/app/components/home/browse/categories/categories.component.html +++ b/frontend/src/app/components/home/browse/categories/categories.component.html @@ -3,19 +3,12 @@Added in the last 7 days
Favorites
+{{ filmGenre.name }}