ov-components: move theme initialization to ov-videoconference constructor

master
Carlos Santos 2025-09-25 12:51:19 +02:00
parent 5c6d8984c2
commit 7071385e22
2 changed files with 11 additions and 10 deletions

View File

@ -64,6 +64,7 @@ import {
PreJoinDirective,
LeaveButtonDirective
} from '../../directives/template/internals.directive';
import { OpenViduThemeService } from '../../services/theme/theme.service';
/**
* The **VideoconferenceComponent** is the parent of all OpenVidu components.
@ -710,7 +711,8 @@ export class VideoconferenceComponent implements OnDestroy, AfterViewInit {
private openviduService: OpenViduService,
private actionService: ActionService,
private libService: OpenViduComponentsConfigService,
private templateManagerService: TemplateManagerService
private templateManagerService: TemplateManagerService,
private themeService: OpenViduThemeService
) {
this.log = this.loggerSrv.get('VideoconferenceComponent');
@ -726,6 +728,7 @@ export class VideoconferenceComponent implements OnDestroy, AfterViewInit {
error: { hasError: false }
});
this.themeService.initializeTheme();
this.subscribeToVideconferenceDirectives();
}

View File

@ -41,8 +41,13 @@ export class OpenViduThemeService {
constructor(
@Inject(DOCUMENT) private document: Document,
protected storageService: StorageService
) {
this.initializeTheme();
) {}
initializeTheme(): void {
const savedTheme = this.storageService.getTheme();
const initialTheme = savedTheme || OpenViduThemeMode.CLASSIC;
this.applyTheme(initialTheme);
this.currentThemeSubject.next(initialTheme);
}
/**
@ -137,13 +142,6 @@ export class OpenViduThemeService {
return window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
}
private initializeTheme(): void {
const savedTheme = this.storageService.getTheme();
const initialTheme = savedTheme || OpenViduThemeMode.CLASSIC;
this.applyTheme(initialTheme);
this.currentThemeSubject.next(initialTheme);
}
private applyTheme(theme: OpenViduThemeMode): void {
const documentElement = this.document.documentElement;
const currentTheme = this.getCurrentTheme();