diff --git a/lib/core/language-menu/language-menu.component.spec.ts b/lib/core/language-menu/language-menu.component.spec.ts index 57373fdb18..5fc955a152 100644 --- a/lib/core/language-menu/language-menu.component.spec.ts +++ b/lib/core/language-menu/language-menu.component.spec.ts @@ -108,4 +108,14 @@ describe('LanguageMenuComponent', () => { component.changeLanguage(languages[1]); expect(spy.calls.mostRecent().args[0]).toBe('textOrientation', 'ltr'); }); + + it('should emit changedLanguage event with language details', () => { + const changedLanguageSpy = spyOn(component.changedLanguage, 'emit'); + appConfig.config.languages = languages; + userPreferencesService.locale = 'fake-key-3'; + fixture.detectChanges(); + + component.changeLanguage(languages[2]); + expect(changedLanguageSpy).toHaveBeenCalledWith(languages[2]); + }); }); diff --git a/lib/core/language-menu/language-menu.component.ts b/lib/core/language-menu/language-menu.component.ts index b21b4afd09..13643274b4 100644 --- a/lib/core/language-menu/language-menu.component.ts +++ b/lib/core/language-menu/language-menu.component.ts @@ -15,7 +15,7 @@ * limitations under the License. */ -import { Component } from '@angular/core'; +import { Component, EventEmitter, Output } from '@angular/core'; import { LanguageService } from '../services/language.service'; import { Observable } from 'rxjs'; import { LanguageItem } from '../services/language-item.interface'; @@ -31,6 +31,9 @@ import { LanguageItem } from '../services/language-item.interface'; }) export class LanguageMenuComponent { + @Output() + changedLanguage: EventEmitter = new EventEmitter(); + languages$: Observable; constructor(private languageService: LanguageService) { @@ -38,6 +41,7 @@ export class LanguageMenuComponent { } changeLanguage(language: LanguageItem) { + this.changedLanguage.emit(language); this.languageService.changeLanguage(language); } }