Squash merge https://github.com/vector-im/riot-web/pull/3636
This commit is contained in:
parent
7d59742a22
commit
6b6fa59f3e
36 changed files with 7547 additions and 186 deletions
|
@ -55,6 +55,9 @@ if (process.env.NODE_ENV !== 'production') {
|
|||
|
||||
var RunModernizrTests = require("./modernizr"); // this side-effects a global
|
||||
var ReactDOM = require("react-dom");
|
||||
// Workaround for broken export
|
||||
import * as counterpart from 'counterpart-riot';
|
||||
var languageHandler = require("matrix-react-sdk/lib/languageHandler");
|
||||
var sdk = require("matrix-react-sdk");
|
||||
var PlatformPeg = require("matrix-react-sdk/lib/PlatformPeg");
|
||||
sdk.loadSkin(require('../component-index'));
|
||||
|
@ -62,6 +65,7 @@ var VectorConferenceHandler = require('../VectorConferenceHandler');
|
|||
var UpdateChecker = require("./updater");
|
||||
var q = require('q');
|
||||
var request = require('browser-request');
|
||||
import Modal from 'matrix-react-sdk/lib/Modal';
|
||||
|
||||
import url from 'url';
|
||||
|
||||
|
@ -214,6 +218,20 @@ function getConfig() {
|
|||
return deferred.promise;
|
||||
}
|
||||
|
||||
|
||||
// This is needed to not load the UserSettingsStore before languages are laoded
|
||||
function getLocalSettings() {
|
||||
const localSettingsString = localStorage.getItem('mx_local_settings') || '{}';
|
||||
return JSON.parse(localSettingsString);
|
||||
}
|
||||
// This is needed to not load the UserSettingsStore before languages are laoded
|
||||
function setLocalSetting(type, value) {
|
||||
const settings = getLocalSettings();
|
||||
settings[type] = value;
|
||||
// FIXME: handle errors
|
||||
localStorage.setItem('mx_local_settings', JSON.stringify(settings));
|
||||
}
|
||||
|
||||
function onLoadCompleted() {
|
||||
// if we did a token login, we're now left with the token, hs and is
|
||||
// url as query params in the url; a little nasty but let's redirect to
|
||||
|
@ -228,8 +246,8 @@ function onLoadCompleted() {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
async function loadApp() {
|
||||
|
||||
const fragparts = parseQsFromFragment(window.location);
|
||||
const params = parseQs(window.location);
|
||||
|
||||
|
@ -263,6 +281,17 @@ async function loadApp() {
|
|||
configError = e;
|
||||
}
|
||||
|
||||
if (!configJson.languages) {
|
||||
let languages;
|
||||
try {
|
||||
languages = await languageHandler.getAllLanguageKeysFromJson();
|
||||
} catch (e) {
|
||||
console.log("couldn't load languages from languages.json: error = "+e);
|
||||
languages = ['en'];
|
||||
}
|
||||
configJson.languages = languages;
|
||||
}
|
||||
|
||||
if (window.localStorage && window.localStorage.getItem('mx_accepts_unsupported_browser')) {
|
||||
console.log('User has previously accepted risks in using an unsupported browser');
|
||||
validBrowser = true;
|
||||
|
@ -309,4 +338,17 @@ async function loadApp() {
|
|||
}
|
||||
}
|
||||
|
||||
loadApp();
|
||||
function loadLanguage(callback) {
|
||||
const _localSettings = getLocalSettings();
|
||||
var languages = [];
|
||||
if (!_localSettings.hasOwnProperty('language')) {
|
||||
languages = languageHandler.getNormalizedLanguageKeys(languageHandler.getLanguageFromBrowser());
|
||||
}else {
|
||||
languages = languageHandler.getNormalizedLanguageKeys(_localSettings.language);
|
||||
}
|
||||
languageHandler.setLanguage(languages, counterpart);
|
||||
setLocalSetting('language', languages[0]);
|
||||
callback();
|
||||
}
|
||||
|
||||
loadLanguage(loadApp);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue