refactor: replace "any" with specific types in several components
This commit is contained in:
parent
fe2b026bf9
commit
300cb97b2f
5 changed files with 33 additions and 12 deletions
|
|
@ -22,8 +22,8 @@ import { GenreService } from '../../../services/genre.service';
|
||||||
export class CategoriesComponent implements AfterViewInit {
|
export class CategoriesComponent implements AfterViewInit {
|
||||||
@Input() videos: Video[] = [];
|
@Input() videos: Video[] = [];
|
||||||
@Input() currentVideo: Video | null = null;
|
@Input() currentVideo: Video | null = null;
|
||||||
@Input() favoriteVideos: any[] = [];
|
@Input() favoriteVideos: number[] = [];
|
||||||
@Input() watchedVideos: any[] = [];
|
@Input() watchedVideos: number[] = [];
|
||||||
|
|
||||||
@Output() currentVideoId = new EventEmitter<number>();
|
@Output() currentVideoId = new EventEmitter<number>();
|
||||||
|
|
||||||
|
|
@ -74,8 +74,9 @@ export class CategoriesComponent implements AfterViewInit {
|
||||||
* @returns An array of favorite videos
|
* @returns An array of favorite videos
|
||||||
*/
|
*/
|
||||||
getFavoriteVideos(): Video[] {
|
getFavoriteVideos(): Video[] {
|
||||||
return this.videos.filter((video) =>
|
return this.videos.filter(
|
||||||
this.favoriteVideos.includes(video.id)
|
(video) =>
|
||||||
|
video.id !== undefined && this.favoriteVideos.includes(video.id)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,9 +9,11 @@
|
||||||
alt=""
|
alt=""
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div *ngIf="watchedVideos.includes(video.id)" class="watched">
|
@if (getWatchedVideos()) {
|
||||||
|
<div class="watched">
|
||||||
<img src="./assets/img/open-eye.svg" alt="" />
|
<img src="./assets/img/open-eye.svg" alt="" />
|
||||||
</div>
|
</div>
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import { Video } from '../../../../interfaces/video.interface';
|
||||||
export class VideoListComponent {
|
export class VideoListComponent {
|
||||||
@Input() videos: Video[] = [];
|
@Input() videos: Video[] = [];
|
||||||
@Input() currentVideo: Video | null = null;
|
@Input() currentVideo: Video | null = null;
|
||||||
@Input() watchedVideos: any[] = [];
|
@Input() watchedVideos: number[] = [];
|
||||||
@Input() videoCategory: string = '';
|
@Input() videoCategory: string = '';
|
||||||
|
|
||||||
@Output() currentVideoId = new EventEmitter<number>();
|
@Output() currentVideoId = new EventEmitter<number>();
|
||||||
|
|
@ -29,6 +29,16 @@ export class VideoListComponent {
|
||||||
return `${environment.baseUrl}/media/thumbnails/${id}/${fileName}_480p.jpg`;
|
return `${environment.baseUrl}/media/thumbnails/${id}/${fileName}_480p.jpg`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Filters and returns all watched videos.
|
||||||
|
* @returns An array of watched videos.
|
||||||
|
*/
|
||||||
|
getWatchedVideos(): Video[] {
|
||||||
|
return this.videos.filter(
|
||||||
|
(video) => video.id !== undefined && this.watchedVideos.includes(video.id)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the current video based on the given videoId and emit the videoId.
|
* Set the current video based on the given videoId and emit the videoId.
|
||||||
* @param videoId The id of the video to set as the current video.
|
* @param videoId The id of the video to set as the current video.
|
||||||
|
|
|
||||||
|
|
@ -38,9 +38,9 @@ export class HeroBannerComponent implements OnChanges {
|
||||||
[resolution: string]: boolean;
|
[resolution: string]: boolean;
|
||||||
}>();
|
}>();
|
||||||
@Output() refreshChange = new EventEmitter<Video[]>();
|
@Output() refreshChange = new EventEmitter<Video[]>();
|
||||||
@Output() videosChange = new EventEmitter<any[]>();
|
@Output() videosChange = new EventEmitter<Video[]>();
|
||||||
@Output() favoriteVideoChange = new EventEmitter<any[]>();
|
@Output() favoriteVideoChange = new EventEmitter<number[]>();
|
||||||
@Output() watchedVideoChange = new EventEmitter<any[]>();
|
@Output() watchedVideoChange = new EventEmitter<number[]>();
|
||||||
|
|
||||||
isVideoLoaded: boolean = false;
|
isVideoLoaded: boolean = false;
|
||||||
previewClipUrl: string = '';
|
previewClipUrl: string = '';
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,11 @@ import { VideoService } from '../../../services/video.service';
|
||||||
import { LoadingDialogComponent } from '../../../shared/components/loading-dialog/loading-dialog.component';
|
import { LoadingDialogComponent } from '../../../shared/components/loading-dialog/loading-dialog.component';
|
||||||
import { Video } from '../../../interfaces/video.interface';
|
import { Video } from '../../../interfaces/video.interface';
|
||||||
import { GenreService } from '../../../services/genre.service';
|
import { GenreService } from '../../../services/genre.service';
|
||||||
import { HttpEvent, HttpEventType } from '@angular/common/http';
|
import {
|
||||||
|
HttpErrorResponse,
|
||||||
|
HttpEvent,
|
||||||
|
HttpEventType,
|
||||||
|
} from '@angular/common/http';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'app-upload-video',
|
selector: 'app-upload-video',
|
||||||
|
|
@ -144,8 +148,12 @@ export class UploadVideoComponent {
|
||||||
* Handles upload errors and resets UI state.
|
* Handles upload errors and resets UI state.
|
||||||
* @param err - The error from the upload observable
|
* @param err - The error from the upload observable
|
||||||
*/
|
*/
|
||||||
private handleUploadError(err: any): void {
|
private handleUploadError(err: unknown): void {
|
||||||
|
if (err instanceof HttpErrorResponse) {
|
||||||
this.errorService.handleError(err);
|
this.errorService.handleError(err);
|
||||||
|
} else {
|
||||||
|
console.error('An unknown error occurred during upload:', err);
|
||||||
|
}
|
||||||
this.uploadProgress = null;
|
this.uploadProgress = null;
|
||||||
this.videoData.send = false;
|
this.videoData.send = false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue