Добавлено автообновление страницы приложения в браузере при обнаружении новой версии

This commit is contained in:
Book Pauk
2022-10-02 15:31:42 +07:00
parent e1fb8afa27
commit 0946941e59
2 changed files with 19 additions and 1 deletions

View File

@@ -36,6 +36,7 @@ import wsc from './webSocketConnection';
import * as utils from '../../share/utils'; import * as utils from '../../share/utils';
import * as cryptoUtils from '../../share/cryptoUtils'; import * as cryptoUtils from '../../share/cryptoUtils';
import LockQueue from '../../share/LockQueue'; import LockQueue from '../../share/LockQueue';
import packageJson from '../../../package.json';
const rotor = '|/-\\'; const rotor = '|/-\\';
const stepBound = [ const stepBound = [
@@ -92,6 +93,15 @@ class Api {
try { try {
const config = await this.getConfig(); const config = await this.getConfig();
this.commit('setConfig', config); this.commit('setConfig', config);
//проверим на новую версию, обновимся при необходимости
if (this.config.version) {
if (this.config.version != packageJson.version && Date.now() - this.lastReloadTime > 15*1000) {
this.commit('setLastReloadTime', Date.now());//на всякий случай, чтобы исключить зацикливание в reload
document.location.reload();
}
}
} catch (e) { } catch (e) {
this.$root.stdDialog.alert(e.message, 'Ошибка'); this.$root.stdDialog.alert(e.message, 'Ошибка');
} }
@@ -101,6 +111,10 @@ class Api {
return this.$store.state.config; return this.$store.state.config;
} }
get lastReloadTime() {
return this.$store.state.lastReloadTime;
}
get settings() { get settings() {
return this.$store.state.settings; return this.$store.state.settings;
} }

View File

@@ -1,6 +1,7 @@
// initial state // initial state
const state = { const state = {
config: {}, config: {},
lastReloadTime: 0,
settings: { settings: {
accessToken: '', accessToken: '',
limit: 20, limit: 20,
@@ -26,6 +27,9 @@ const mutations = {
setConfig(state, value) { setConfig(state, value) {
state.config = value; state.config = value;
}, },
setLastReloadTime(state, value) {
state.lastReloadTime = value;
},
setSettings(state, value) { setSettings(state, value) {
state.settings = Object.assign({}, state.settings, value); state.settings = Object.assign({}, state.settings, value);
}, },