Added flags for language change

This commit is contained in:
2025-11-07 09:31:41 +01:00
parent 46e5cd1e01
commit 6c7bad3e7f
8 changed files with 102 additions and 30 deletions

View File

@@ -0,0 +1,32 @@
import { Injectable, NgZone, signal } from '@angular/core';
import {Constants} from '../constants/Constants';
@Injectable({ providedIn: 'root' })
export class ReloadService {
private readonly _reloadTick = signal(0);
readonly reloadTick = this._reloadTick.asReadonly();
private readonly _languageChangedTick = signal(0);
readonly languageChangedTick = this._languageChangedTick.asReadonly();
constructor(zone: NgZone) {
zone.runOutsideAngular(() => {
globalThis.addEventListener('storage', (e: StorageEvent) => {
this.informListeners(e, zone);
});
});
}
private informListeners(e: StorageEvent, zone: NgZone) {
if (e.key === Constants.LANGUAGE_KEY) {
zone.run(() => this._languageChangedTick.update(v => v + 1));
}
}
bumpLanguageChanged(): void {
this._reloadTick.update(v => v + 1);
localStorage.setItem(Constants.RELOAD_ALL_LANG_LISTENER_KEY, String(Date.now()));
}
}