diff --git a/html/src/app.js b/html/src/app.js index 58e30011..2c4cbcf2 100644 --- a/html/src/app.js +++ b/html/src/app.js @@ -14,14 +14,15 @@ import locale from 'element-ui/lib/locale/lang/en'; import sharedRepository from './repository/shared.js'; import configRepository from './repository/config.js'; import webApiService from './service/webapi.js'; +import logWatcherService from './service/logwatcher.js' (async function () { await CefSharp.BindObjectAsync( 'WebApi', 'VRCX', - 'SharedVariable', // DO NOT DIRECT ACCESS + 'SharedVariable', 'VRCXStorage', - 'SQLite', // DO NOT DIRECT ACCESS + 'SQLite', 'LogWatcher', 'Discord' ); @@ -3294,27 +3295,26 @@ import webApiService from './service/webapi.js'; methods: {}, watch: {}, el: '#x-app', - mounted() { - LogWatcher.Reset().then(() => { - API.$on('SHOW_WORLD_DIALOG', (tag) => this.showWorldDialog(tag)); - API.$on('SHOW_LAUNCH_DIALOG', (tag) => this.showLaunchDialog(tag)); - this.updateLoop(); - this.updateGameLogLoop(); - this.$nextTick(function () { - this.$el.style.display = ''; - this.loginForm.loading = true; - API.getConfig().catch((err) => { + async mounted() { + this.checkAppVersion(); + await logWatcherService.reset(); + API.$on('SHOW_WORLD_DIALOG', (tag) => this.showWorldDialog(tag)); + API.$on('SHOW_LAUNCH_DIALOG', (tag) => this.showLaunchDialog(tag)); + this.updateLoop(); + this.updateGameLogLoop(); + this.$nextTick(function () { + this.$el.style.display = ''; + this.loginForm.loading = true; + API.getConfig().catch((err) => { + this.loginForm.loading = false; + throw err; + }).then((args) => { + API.getCurrentUser().finally(() => { this.loginForm.loading = false; - throw err; - }).then((args) => { - API.getCurrentUser().finally(() => { - this.loginForm.loading = false; - }); - return args; }); + return args; }); }); - this.checkAppVersion(); } }; @@ -4483,10 +4483,9 @@ import webApiService from './service/webapi.js'; } }; - $app.methods.resetGameLog = function () { - LogWatcher.Reset().then(() => { - this.gameLogTable.data = []; - }); + $app.methods.resetGameLog = async function () { + await logWatcherService.reset(); + this.gameLogTable.data = []; }; $app.methods.updateGameLogLoop = async function () { @@ -4513,7 +4512,7 @@ import webApiService from './service/webapi.js'; username: currentUserName } = API.currentUser; - for (var [fileName, dt, type, ...args] of await LogWatcher.Get()) { + for (var [fileName, dt, type, ...args] of await logWatcherService.get()) { var gameLogContext = gameLogContextMap.get(fileName); if (gameLogContext === undefined) { gameLogContext = { diff --git a/html/src/service/logwatcher.js b/html/src/service/logwatcher.js new file mode 100644 index 00000000..d01f26da --- /dev/null +++ b/html/src/service/logwatcher.js @@ -0,0 +1,19 @@ +// requires binding of LogWatcher + +class LogWatcherService { + get() { + return LogWatcher.Get(); + } + + reset() { + return LogWatcher.Reset(); + } +} + +var self = new LogWatcherService(); +window.logWatcherService = self; + +export { + self as default, + LogWatcherService +};