mempool/frontend/src/app/components/language-selector/language-selector.component.ts

37 lines
1.3 KiB
TypeScript
Raw Normal View History

2022-01-12 13:24:20 +09:00
import { DOCUMENT } from '@angular/common';
import { ChangeDetectionStrategy, Component, Inject, OnInit } from '@angular/core';
2022-11-28 11:55:23 +09:00
import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
2022-09-21 17:23:45 +02:00
import { languages } from '../../app.constants';
import { LanguageService } from '../../services/language.service';
@Component({
selector: 'app-language-selector',
templateUrl: './language-selector.component.html',
styleUrls: ['./language-selector.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush
})
export class LanguageSelectorComponent implements OnInit {
2022-11-28 11:55:23 +09:00
languageForm: UntypedFormGroup;
languages = languages;
constructor(
2022-01-12 13:24:20 +09:00
@Inject(DOCUMENT) private document: Document,
2022-11-28 11:55:23 +09:00
private formBuilder: UntypedFormBuilder,
private languageService: LanguageService,
) { }
ngOnInit() {
this.languageForm = this.formBuilder.group({
language: ['en']
});
this.languageForm.get('language').setValue(this.languageService.getLanguage());
}
changeLanguage() {
2022-01-12 13:24:20 +09:00
const newLang = this.languageForm.get('language').value;
this.languageService.setLanguage(newLang);
const rawUrlPath = this.languageService.stripLanguageFromUrl(null);
this.document.location.href = (newLang !== 'en' ? `/${newLang}` : '') + rawUrlPath;
}
}