very first commit
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
import { Component, HostListener, ElementRef } from '@angular/core';
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { LanguageService, Language } from '../../services/language.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-language-selector',
|
||||
standalone: true,
|
||||
imports: [CommonModule],
|
||||
templateUrl: './language-selector.component.html',
|
||||
styleUrls: ['./language-selector.component.scss']
|
||||
})
|
||||
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.setLanguage(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;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user