import locale from './locale';
import {
initPageLanguage, getPageLanguage, setPageLanguage, changePageLanguage,
ALL_PAGE_LANGUAGES, DEFAULT_PAGE_LANGUAGE,
addClass, removeClass,
on, off
} from '../common/utils';
import './index.scss';
class Home {
constructor() {
initPageLanguage();
this.renderLanguage();
this.renderImage();
this.bindEvent();
}
renderImage() {
document.getElementById('viser-mount-1-1').innerHTML = '
';
document.getElementById('viser-mount-2-1').innerHTML = '
';
document.getElementById('viser-mount-2-2').innerHTML = '
';
document.getElementById('viser-mount-2-3').innerHTML = '
';
document.getElementById('viser-mount-2-4').innerHTML = '
';
}
renderText(selector, text) {
const selectorDom = document.querySelector(selector);
if (selectorDom) {
selectorDom.innerHTML = text;
}
}
renderLanguage() {
let pageLanguageInStore = getPageLanguage();
if (!pageLanguageInStore || ALL_PAGE_LANGUAGES.indexOf(pageLanguageInStore) === -1) {
pageLanguageInStore = DEFAULT_PAGE_LANGUAGE;
setPageLanguage(pageLanguageInStore);
}
const pageLanguageSwitchDom = document.querySelector('.home-header .page-language-switch');
ALL_PAGE_LANGUAGES.forEach((lang) => {
removeClass(pageLanguageSwitchDom, lang);
});
addClass(pageLanguageSwitchDom, pageLanguageInStore);
if (locale && locale[pageLanguageInStore] && locale[pageLanguageInStore].length) {
locale[pageLanguageInStore].forEach((o) => {
this.renderText(o.selector, o.text);
});
}
}
handleSwitchPageLanguage = () => {
changePageLanguage();
this.unbindEvent();
this.renderLanguage();
this.bindEvent();
}
unbindEvent() {
const pageLanguageSwitchDom = document.querySelector('.home-header .page-language-switch');
if (pageLanguageSwitchDom) {
off(pageLanguageSwitchDom, 'click', this.handleSwitchPageLanguage);
}
}
bindEvent() {
const pageLanguageSwitchDom = document.querySelector('.home-header .page-language-switch');
if (pageLanguageSwitchDom) {
on(pageLanguageSwitchDom, 'click', this.handleSwitchPageLanguage);
}
}
}
new Home();