mirror of https://github.com/OpenVidu/openvidu.git
59 lines
2.1 KiB
TypeScript
59 lines
2.1 KiB
TypeScript
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core';
|
|
import { Subscription } from 'rxjs';
|
|
import { BackgroundEffect, EffectType } from '../../../models/background-effect.model';
|
|
import { PanelType } from '../../../models/panel.model';
|
|
import { PanelService } from '../../../services/panel/panel.service';
|
|
import { VirtualBackgroundService } from '../../../services/virtual-background/virtual-background.service';
|
|
|
|
@Component({
|
|
selector: 'ov-background-effects-panel',
|
|
templateUrl: './background-effects-panel.component.html',
|
|
styleUrls: ['./background-effects-panel.component.css'],
|
|
changeDetection: ChangeDetectionStrategy.OnPush
|
|
})
|
|
export class BackgroundEffectsPanelComponent implements OnInit {
|
|
|
|
backgroundSelectedId: string;
|
|
backgroundImages: BackgroundEffect[] = [];
|
|
noEffectAndBlurredBackground: BackgroundEffect[] = [];
|
|
private backgrounds: BackgroundEffect[];
|
|
private backgroundSubs: Subscription;
|
|
|
|
constructor(private panelService: PanelService, private backgroundService: VirtualBackgroundService, private cd: ChangeDetectorRef) {}
|
|
|
|
ngOnInit(): void {
|
|
this.subscribeToBackgroundSelected();
|
|
this.backgrounds = this.backgroundService.getBackgrounds();
|
|
this.noEffectAndBlurredBackground = this.backgrounds.filter(f => f.type === EffectType.BLUR || f.type === EffectType.NONE);
|
|
this.backgroundImages = this.backgrounds.filter(f => f.type === EffectType.IMAGE);
|
|
}
|
|
|
|
ngOnDestroy() {
|
|
if(this.backgroundSubs) this.backgroundSubs.unsubscribe();
|
|
}
|
|
subscribeToBackgroundSelected() {
|
|
this.backgroundSubs = this.backgroundService.backgroundSelectedObs.subscribe((id) => {
|
|
this.backgroundSelectedId = id;
|
|
this.cd.markForCheck();
|
|
});
|
|
}
|
|
|
|
close() {
|
|
this.panelService.togglePanel(PanelType.BACKGROUND_EFFECTS);
|
|
}
|
|
|
|
async applyBackground(effect: BackgroundEffect) {
|
|
|
|
if(effect.type === EffectType.NONE){
|
|
await this.removeBackground();
|
|
} else {
|
|
await this.backgroundService.applyBackground(effect);
|
|
}
|
|
|
|
}
|
|
|
|
async removeBackground() {
|
|
await this.backgroundService.removeBackground();
|
|
}
|
|
}
|