31 lines
1.2 KiB
TypeScript
31 lines
1.2 KiB
TypeScript
import {Component, CUSTOM_ELEMENTS_SCHEMA, inject} from '@angular/core';
|
|
import {GuestShowDataService} from './guest-show-data.service';
|
|
import {ActivatedRoute} from '@angular/router';
|
|
import {map, switchMap} from 'rxjs/operators';
|
|
import {Song} from '../songs/services/song';
|
|
import {ConfigService} from '../../services/config.service';
|
|
import {AsyncPipe, DatePipe} from '@angular/common';
|
|
import {SongTextComponent} from '../../widget-modules/components/song-text/song-text.component';
|
|
import {ShowTypePipe} from '../../widget-modules/pipes/show-type-translater/show-type.pipe';
|
|
|
|
@Component({
|
|
selector: 'app-guest',
|
|
templateUrl: './guest.component.html',
|
|
styleUrls: ['./guest.component.less'],
|
|
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
imports: [SongTextComponent, AsyncPipe, DatePipe, ShowTypePipe],
|
|
})
|
|
export class GuestComponent {
|
|
private currentRoute = inject(ActivatedRoute);
|
|
private service = inject(GuestShowDataService);
|
|
private configService = inject(ConfigService);
|
|
|
|
public show$ = this.currentRoute.params.pipe(
|
|
map(param => param.id as string),
|
|
switchMap(id => this.service.read$(id))
|
|
);
|
|
public config$ = this.configService.get$();
|
|
|
|
public trackBy = (index: number, show: Song) => show.id;
|
|
}
|