
import ko from 'ko';
import {isArray} from 'Common/Utils';
import * as Settings from 'Storage/Settings';

class LanguageStore
{
	constructor() {
		this.languages = ko.observableArray([]);
		this.languagesAdmin = ko.observableArray([]);

		this.language = ko.observable('')
			.extend({limitedList: this.languages})
			.extend({reversible: true});

		this.languageAdmin = ko.observable('')
			.extend({limitedList: this.languagesAdmin})
			.extend({reversible: true});

		this.userLanguage = ko.observable('');
		this.userLanguageAdmin = ko.observable('');
	}

	populate() {
		const
			aLanguages = Settings.appSettingsGet('languages'),
			aLanguagesAdmin = Settings.appSettingsGet('languagesAdmin');

		this.languages(isArray(aLanguages) ? aLanguages : []);
		this.languagesAdmin(isArray(aLanguagesAdmin) ? aLanguagesAdmin : []);

		this.language(Settings.settingsGet('Language'));
		this.languageAdmin(Settings.settingsGet('LanguageAdmin'));

		this.userLanguage(Settings.settingsGet('UserLanguage'));
		this.userLanguageAdmin(Settings.settingsGet('UserLanguageAdmin'));
	}
}

export default new LanguageStore();
