Files
marketplaces/src/app/components/language-selector/language-selector.component.ts
2026-02-26 22:23:08 +04:00

41 lines
1.0 KiB
TypeScript

import { Component, HostListener, ElementRef, ChangeDetectionStrategy } from '@angular/core';
import { LanguageService, Language } from '../../services/language.service';
@Component({
selector: 'app-language-selector',
imports: [],
templateUrl: './language-selector.component.html',
styleUrls: ['./language-selector.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush
})
export class LanguageSelectorComponent {
dropdownOpen = false;
constructor(
public languageService: LanguageService,
private elementRef: ElementRef
) {}
toggleDropdown(): void {
this.dropdownOpen = !this.dropdownOpen;
}
selectLanguage(lang: Language): void {
if (lang.enabled) {
this.languageService.switchLanguage(lang.code);
this.dropdownOpen = false;
}
}
closeDropdown(): void {
this.dropdownOpen = false;
}
@HostListener('document:click', ['$event'])
onClickOutside(event: Event): void {
if (!this.elementRef.nativeElement.contains(event.target)) {
this.dropdownOpen = false;
}
}
}