diff --git a/dev/View/Popup/Languages.js b/dev/View/Popup/Languages.js index f7d33327c..7bcf2b719 100644 --- a/dev/View/Popup/Languages.js +++ b/dev/View/Popup/Languages.js @@ -1,5 +1,4 @@ import ko from 'ko'; -import { koComputable } from 'External/ko'; import { convertLangName } from 'Common/Translator'; @@ -8,46 +7,19 @@ import { AbstractViewPopup } from 'Knoin/AbstractViews'; export class LanguagesPopupView extends AbstractViewPopup { constructor() { super('Languages'); - this.fLang = null; - this.userLanguage = ko.observable(''); - - this.langs = ko.observableArray(); - - this.languages = koComputable(() => { - const userLanguage = this.userLanguage(); - return this.langs.map(language => ({ - key: language, - user: language === userLanguage, - selected: ko.observable(false), - fullName: convertLangName(language) - })); - }); - - this.langs.subscribe(() => this.setLanguageSelection()); - } - - languageTooltipName(language) { - return convertLangName(language, true); - } - - setLanguageSelection() { - const currentLang = this.fLang ? ko.unwrap(this.fLang) : ''; - this.languages().forEach(item => item.selected(item.key === currentLang)); - } - - beforeShow() { - this.fLang = null; - this.userLanguage(''); - - this.langs([]); + this.languages = ko.observableArray(); } onShow(fLanguage, langs, userLanguage) { this.fLang = fLanguage; - this.userLanguage(userLanguage || ''); - - this.langs(langs); + this.languages(langs.map(language => ({ + key: language, + user: userLanguage === language, + selected: fLanguage?.() === language, + fullName: convertLangName(language), + title: convertLangName(language, true) + }))); } changeLanguage(lang) { diff --git a/snappymail/v/0.0.0/app/templates/Views/Common/PopupsLanguages.html b/snappymail/v/0.0.0/app/templates/Views/Common/PopupsLanguages.html index 0df6a301b..7df69e7f7 100644 --- a/snappymail/v/0.0.0/app/templates/Views/Common/PopupsLanguages.html +++ b/snappymail/v/0.0.0/app/templates/Views/Common/PopupsLanguages.html @@ -4,7 +4,7 @@