|
|
|
|
| import { StateManager } from '../services/state-manager.js';
|
| import { TranslationService } from '../services/translation-service.js';
|
|
|
| export const LanguageComponent = {
|
| elements: {
|
| frRadioBtn: null,
|
| enRadioBtn: null,
|
| continueLangBtn: null,
|
| consentModal: null
|
| },
|
|
|
| |
| |
|
|
| init() {
|
| this.elements.frRadioBtn = document.getElementById('lang-fr');
|
| this.elements.enRadioBtn = document.getElementById('lang-en');
|
| this.elements.continueLangBtn = document.getElementById('lang-continue-btn');
|
| this.elements.consentModal = document.getElementById('consent-modal');
|
|
|
| this.attachEventListeners();
|
| this.setInitialLanguage();
|
| },
|
|
|
| |
| |
|
|
| attachEventListeners() {
|
| this.elements.frRadioBtn.addEventListener('change', () => {
|
| TranslationService.setLanguage(this.elements.frRadioBtn.value);
|
| });
|
|
|
| this.elements.enRadioBtn.addEventListener('change', () => {
|
| TranslationService.setLanguage(this.elements.enRadioBtn.value);
|
| });
|
|
|
| this.elements.continueLangBtn.addEventListener('click', () => {
|
| this.elements.consentModal.scrollIntoView({
|
| behavior: 'smooth',
|
| inline: 'start',
|
| block: 'nearest'
|
| });
|
| });
|
| },
|
|
|
| |
| |
|
|
| setInitialLanguage() {
|
| if (StateManager.currentLang === 'en') {
|
| this.elements.enRadioBtn.checked = true;
|
| } else {
|
| this.elements.frRadioBtn.checked = true;
|
| }
|
| }
|
| }; |