import { ChangeDetectionStrategy, Component } from '@angular/core'; import { AsyncPipe } from '@angular/common'; import { startWith, switchMap } from 'rxjs'; import { injectWebsocketService, WSEvents } from '@/core/services/websocket.service'; import { OndemandTriggerComponent } from '@/features/ondemand/ondemand-trigger/ondemand-trigger.component'; import { OndemandVideoComponent } from '@/features/ondemand/ondemand-video/ondemand-video.component'; import { OndemandVideo } from '@/features/ondemand/ondemand.models'; import { injectOndemandService, OndemandService } from '@/features/ondemand/ondemand.service'; import { MainLayoutComponent } from '@/shared/layout/main-layout/main-layout.component'; import { ModalComponent } from '@/shared/ui/modal/modal.component'; @Component({ selector: 'app-ondemands', standalone: true, providers: [OndemandService], imports: [ MainLayoutComponent, AsyncPipe, OndemandTriggerComponent, OndemandVideoComponent, ModalComponent, ], templateUrl: './ondemands.component.html', styleUrls: ['./ondemands.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush, }) export default class OndemandsComponent { private ondemandServ = injectOndemandService(); selectedOndemand: OndemandVideo | null = null; ondemands$ = injectWebsocketService() .listen(WSEvents.ONDEMAND) .pipe( startWith(true), switchMap(() => this.ondemandServ.getOndemandVideos()) ); }