mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-05-07 06:56:04 +02:00
Upgrade to Vue3 and Element Plus (#1374)
* Update Vue devtools
* upgrade vue pinia element-plus vue-i18n, add vite
* fix: i18n
* global components
* change v-deep
* upgrade vue-lazyload
* data table
* update enlint and safe-dialog
* package.json and vite.config.js
* el-icon
* el-message
* vue 2 -> vue3 migration changes
* $pinia
* dialog
* el-popover slot
* lint
* chore
* slot
* scss
* remote state access
* misc
* jsconfig
* el-button size mini -> small
* :model-value
* ElMessageBox
* datatable
* remove v-lazyload
* template #dropdown
* mini -> small
* css
* byebye hideTooltips
* use sass-embedded
* Update SQLite, remove unneeded libraries
* Fix shift remove local avatar favorites
* Electron arm64
* arm64 support
* bye pug
* f-word vite hah
* misc
* remove safe dialog component
* Add self invite to launch dialog
* Fix errors
* Icons 1
* improve localfavorite loading performance
* improve favorites world item performance
* dialog visibility changes for Element Plus
* clear element plus error
* import performance
* revert App.vue hah
* hah
* Revert "Add self invite to launch dialog"
This reverts commit 4801cfad58.
* Toggle self invite/open in-game
* Self invite on launch dialog
* el-button icon
* el-icon
* fix user dialog tab switching logic
* fix PlayerList
* Formatting changes
* More icons
* Fix friend log table
* loading margin
* fix markdown
* fix world dialog tab switching issue
* Fixes and formatting
* fix: global i18n.t export
* fix favorites world tab not working
* Create instance, displayName
* Remove group members sort by userId
* Fix loading dialog tabs on swtich
* Star
* charts console.warn
* wip: fix charts
* wip: fix charts
* wip: charts composables
* fix favorite item tooltip warning
* Fixes and formatting
* Clean up image dialogs
* Remove unused method
* Fix platform/size border
* Fix platform/size border
* $vr
* fix friendExportDialogVisible binding
* ElMessageBox and Settings
* Login formatting
* Rename VR overlay query
* Fix image popover and userdialog badges
* Formatting
* Big buttons
* Fixes, update Cef
* Fix gameLog table nav buttons jumping around while using nav buttons
* Fix z-index
* vr overlay
* vite input add theme
* defineAsyncComponent
* ISO 639-1
* fix i18n
* clean t
* Formatting, fix calendar, rotate arrows
* Show user status when user is offline
* Fix VR overlay
* fix theme and clean up
* split InstanceActivity
* tweak
* Fix VR overlay formatting
* fix scss var
* AppDebug hahahaha
* Years
* remove reactive
* improve perf
* state hah…
* fix user rendering poblems when user object is not yet loaded
* improve perf
* Update avatar/world image uploader, licenses, remove previous images dialog (old images are now deleted)
* improve perf 1
* Suppress stray errors
* fix traveling location display issue
* Fix empty instance creator
* improve friend list refresh performance
* fix main charts
* fix chart
* Fix darkmode
* Fix avatar dialog tags
---------
Co-authored-by: pa <maplenagisa@gmail.com>
This commit is contained in:
+143
-65
@@ -1,11 +1,99 @@
|
||||
<script>
|
||||
// @ts-ignore
|
||||
import template from './app.pug';
|
||||
import Vue, { onMounted } from 'vue';
|
||||
<template>
|
||||
<!DOCTYPE html>
|
||||
<el-config-provider :locale="currentLocale">
|
||||
<div
|
||||
id="x-app"
|
||||
class="x-app"
|
||||
ondragenter="event.preventDefault()"
|
||||
ondragover="event.preventDefault()"
|
||||
ondrop="event.preventDefault()">
|
||||
<!-- ### Login ### -->
|
||||
<Login v-if="!watchState.isLoggedIn"></Login>
|
||||
|
||||
<VRCXUpdateDialog></VRCXUpdateDialog>
|
||||
|
||||
<template v-if="watchState.isLoggedIn">
|
||||
<!-- ### Menu ### -->
|
||||
<NavMenu></NavMenu>
|
||||
|
||||
<!-- ### Sidebar ### -->
|
||||
<Sidebar></Sidebar>
|
||||
|
||||
<!-- ### Tabs ### -->
|
||||
<Feed></Feed>
|
||||
|
||||
<GameLog></GameLog>
|
||||
|
||||
<PlayerList></PlayerList>
|
||||
|
||||
<Search></Search>
|
||||
|
||||
<Favorites></Favorites>
|
||||
|
||||
<FriendLog></FriendLog>
|
||||
|
||||
<Moderation></Moderation>
|
||||
|
||||
<Notification></Notification>
|
||||
|
||||
<FriendList></FriendList>
|
||||
|
||||
<Charts></Charts>
|
||||
|
||||
<Tools></Tools>
|
||||
|
||||
<Profile></Profile>
|
||||
|
||||
<Settings></Settings>
|
||||
|
||||
<!-- ## Dialogs ## -->
|
||||
<UserDialog></UserDialog>
|
||||
|
||||
<WorldDialog></WorldDialog>
|
||||
|
||||
<AvatarDialog></AvatarDialog>
|
||||
|
||||
<GroupDialog></GroupDialog>
|
||||
|
||||
<GroupMemberModerationDialog></GroupMemberModerationDialog>
|
||||
|
||||
<FullscreenImageDialog></FullscreenImageDialog>
|
||||
|
||||
<PreviousInstancesInfoDialog></PreviousInstancesInfoDialog>
|
||||
|
||||
<LaunchDialog></LaunchDialog>
|
||||
|
||||
<LaunchOptionsDialog></LaunchOptionsDialog>
|
||||
|
||||
<FriendImportDialog></FriendImportDialog>
|
||||
|
||||
<WorldImportDialog></WorldImportDialog>
|
||||
|
||||
<AvatarImportDialog></AvatarImportDialog>
|
||||
|
||||
<ChooseFavoriteGroupDialog></ChooseFavoriteGroupDialog>
|
||||
|
||||
<EditInviteMessageDialog></EditInviteMessageDialog>
|
||||
|
||||
<VRChatConfigDialog></VRChatConfigDialog>
|
||||
|
||||
<PrimaryPasswordDialog></PrimaryPasswordDialog>
|
||||
</template>
|
||||
</div>
|
||||
</el-config-provider>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { onMounted, computed } from 'vue';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import { createGlobalStores } from './stores';
|
||||
import { watchState } from './service/watchState';
|
||||
|
||||
import '@fontsource/noto-sans-kr';
|
||||
import '@fontsource/noto-sans-jp';
|
||||
import '@fontsource/noto-sans-sc';
|
||||
import '@fontsource/noto-sans-tc';
|
||||
|
||||
import Login from './views/Login/Login.vue';
|
||||
import NavMenu from './components/NavMenu.vue';
|
||||
import Sidebar from './views/Sidebar/Sidebar.vue';
|
||||
@@ -28,7 +116,6 @@
|
||||
import AvatarDialog from './components/dialogs/AvatarDialog/AvatarDialog.vue';
|
||||
import GroupDialog from './components/dialogs/GroupDialog/GroupDialog.vue';
|
||||
import GroupMemberModerationDialog from './components/dialogs/GroupDialog/GroupMemberModerationDialog.vue';
|
||||
import GalleryDialog from './components/dialogs/GalleryDialog.vue';
|
||||
import FullscreenImageDialog from './components/dialogs/FullscreenImageDialog.vue';
|
||||
import PreviousInstancesInfoDialog from './components/dialogs/PreviousInstancesDialog/PreviousInstancesInfoDialog.vue';
|
||||
import LaunchDialog from './components/dialogs/LaunchDialog.vue';
|
||||
@@ -42,66 +129,57 @@
|
||||
import VRChatConfigDialog from './views/Settings/dialogs/VRChatConfigDialog.vue';
|
||||
import PrimaryPasswordDialog from './views/Settings/dialogs/PrimaryPasswordDialog.vue';
|
||||
|
||||
import { utils } from './shared/utils/_utils';
|
||||
import en from 'element-plus/es/locale/lang/en';
|
||||
import es from 'element-plus/es/locale/lang/es';
|
||||
import fr from 'element-plus/es/locale/lang/fr';
|
||||
import hu from 'element-plus/es/locale/lang/hu';
|
||||
import ja from 'element-plus/es/locale/lang/ja';
|
||||
import ko from 'element-plus/es/locale/lang/ko';
|
||||
import pl from 'element-plus/es/locale/lang/pl';
|
||||
import pt from 'element-plus/es/locale/lang/pt';
|
||||
import cs from 'element-plus/es/locale/lang/cs';
|
||||
import ru from 'element-plus/es/locale/lang/ru';
|
||||
import vi from 'element-plus/es/locale/lang/vi';
|
||||
import zhCN from 'element-plus/es/locale/lang/zh-CN';
|
||||
import zhTW from 'element-plus/es/locale/lang/zh-TW';
|
||||
import th from 'element-plus/es/locale/lang/th';
|
||||
|
||||
export default {
|
||||
template,
|
||||
components: {
|
||||
Login,
|
||||
NavMenu,
|
||||
Sidebar,
|
||||
Feed,
|
||||
GameLog,
|
||||
PlayerList,
|
||||
Search,
|
||||
Favorites,
|
||||
FriendLog,
|
||||
Moderation,
|
||||
Notification,
|
||||
FriendList,
|
||||
Charts,
|
||||
Tools,
|
||||
Profile,
|
||||
Settings,
|
||||
|
||||
UserDialog,
|
||||
WorldDialog,
|
||||
AvatarDialog,
|
||||
GroupDialog,
|
||||
GroupMemberModerationDialog,
|
||||
GalleryDialog,
|
||||
FullscreenImageDialog,
|
||||
PreviousInstancesInfoDialog,
|
||||
LaunchDialog,
|
||||
LaunchOptionsDialog,
|
||||
FriendImportDialog,
|
||||
WorldImportDialog,
|
||||
AvatarImportDialog,
|
||||
ChooseFavoriteGroupDialog,
|
||||
EditInviteMessageDialog,
|
||||
VRCXUpdateDialog,
|
||||
VRChatConfigDialog,
|
||||
PrimaryPasswordDialog
|
||||
},
|
||||
setup() {
|
||||
const store = createGlobalStores();
|
||||
Vue.prototype.store = store;
|
||||
Vue.prototype.utils = utils;
|
||||
|
||||
store.updateLoop.updateLoop();
|
||||
|
||||
onMounted(async () => {
|
||||
store.gameLog.getGameLogTable();
|
||||
await store.auth.migrateStoredUsers();
|
||||
store.auth.autoLoginAfterMounted();
|
||||
store.vrcx.checkAutoBackupRestoreVrcRegistry();
|
||||
store.game.checkVRChatDebugLogging();
|
||||
});
|
||||
|
||||
return {
|
||||
store,
|
||||
watchState
|
||||
};
|
||||
}
|
||||
const langMap = {
|
||||
en: en,
|
||||
es: es,
|
||||
fr: fr,
|
||||
hu: hu,
|
||||
ja: ja,
|
||||
ko: ko,
|
||||
pl: pl,
|
||||
pt: pt,
|
||||
cs: cs,
|
||||
ru: ru,
|
||||
vi: vi,
|
||||
'zh-CN': zhCN,
|
||||
'zh-TW': zhTW,
|
||||
th: th
|
||||
};
|
||||
|
||||
const currentLocale = computed(() => {
|
||||
return langMap[locale.value] || en;
|
||||
});
|
||||
|
||||
const { locale } = useI18n();
|
||||
|
||||
const store = createGlobalStores();
|
||||
|
||||
if (typeof window !== 'undefined') {
|
||||
window.$pinia = store;
|
||||
}
|
||||
|
||||
store.updateLoop.updateLoop();
|
||||
|
||||
onMounted(async () => {
|
||||
store.gameLog.getGameLogTable();
|
||||
await store.auth.migrateStoredUsers();
|
||||
store.auth.autoLoginAfterMounted();
|
||||
store.vrcx.checkAutoBackupRestoreVrcRegistry();
|
||||
store.game.checkVRChatDebugLogging();
|
||||
});
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user