import { ChangeDetectionStrategy, Component, computed, inject, signal, HostListener } from '@angular/core'; import { CommonModule } from '@angular/common'; import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser'; import { firstValueFrom } from 'rxjs'; import { YoutubeApiService } from '../../services/youtube-api.service'; import { InstanceService } from '../../services/instance.service'; import { Video } from '../../models/video.model'; @Component({ selector: 'app-watch-short', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [CommonModule], templateUrl: './watch-short.component.html' }) export class WatchShortComponent { private api = inject(YoutubeApiService); private instances = inject(InstanceService); private sanitizer = inject(DomSanitizer); loading = signal(true); error = signal(null); items = signal([]); index = signal(0); nextCursor = signal(null); busyMore = signal(false); // scroll/swipe helpers private wheelAccum = 0; private lastSwipeY: number | null = null; private lastScrollTs = 0; readonly provider = computed(() => this.instances.selectedProvider()); readonly current = computed