Fix playerlist table size changing when current instance empty

This commit is contained in:
Natsumi
2025-10-15 04:55:10 +11:00
parent 484b98680a
commit 14408b305a
2 changed files with 22 additions and 17 deletions
+11 -6
View File
@@ -1,4 +1,4 @@
import { reactive, ref, watch } from 'vue'; import { reactive, watch, ref, computed } from 'vue';
import { ElMessage } from 'element-plus'; import { ElMessage } from 'element-plus';
import { defineStore } from 'pinia'; import { defineStore } from 'pinia';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
@@ -81,8 +81,12 @@ export const useInstanceStore = defineStore('Instance', () => {
const instanceJoinHistory = ref(new Map()); const instanceJoinHistory = ref(new Map());
const currentInstanceUserList = ref({ const currentInstanceUsersData = ref([]);
data: [], const currentInstanceUsersTable = computed(() => {
return reactive({
data: currentInstanceWorld.value.ref.id
? currentInstanceUsersData.value
: [],
tableProps: { tableProps: {
stripe: true, stripe: true,
size: 'small', size: 'small',
@@ -93,11 +97,12 @@ export const useInstanceStore = defineStore('Instance', () => {
}, },
layout: 'table' layout: 'table'
}); });
});
watch( watch(
() => watchState.isLoggedIn, () => watchState.isLoggedIn,
(isLoggedIn) => { (isLoggedIn) => {
currentInstanceUserList.value.data = []; currentInstanceUsersTable.value.data = [];
instanceJoinHistory.value = new Map(); instanceJoinHistory.value = new Map();
previousInstancesInfoDialogVisible.value = false; previousInstancesInfoDialogVisible.value = false;
cachedInstances.clear(); cachedInstances.clear();
@@ -1188,7 +1193,7 @@ export const useInstanceStore = defineStore('Instance', () => {
} }
} }
} }
currentInstanceUserList.value.data = users; currentInstanceUsersTable.value.data = users;
} }
// $app.methods.instanceQueueClear = function () { // $app.methods.instanceQueueClear = function () {
@@ -1210,7 +1215,7 @@ export const useInstanceStore = defineStore('Instance', () => {
previousInstancesInfoDialogVisible, previousInstancesInfoDialogVisible,
previousInstancesInfoDialogInstanceId, previousInstancesInfoDialogInstanceId,
instanceJoinHistory, instanceJoinHistory,
currentInstanceUserList, currentInstanceUsersTable,
applyInstance, applyInstance,
updateCurrentInstanceWorld, updateCurrentInstanceWorld,
+2 -2
View File
@@ -189,7 +189,7 @@
<div class="current-instance-table"> <div class="current-instance-table">
<DataTable <DataTable
v-bind="currentInstanceWorld.ref.id ? currentInstanceUserList : {}" v-bind="currentInstanceUsersTable"
style="margin-top: 10px; cursor: pointer" style="margin-top: 10px; cursor: pointer"
@row-click="selectCurrentInstanceRow"> @row-click="selectCurrentInstanceRow">
<el-table-column :label="t('table.playerList.avatar')" width="70" prop="photo"> <el-table-column :label="t('table.playerList.avatar')" width="70" prop="photo">
@@ -439,7 +439,7 @@
const { showWorldDialog } = useWorldStore(); const { showWorldDialog } = useWorldStore();
const { lastLocation } = storeToRefs(useLocationStore()); const { lastLocation } = storeToRefs(useLocationStore());
const { currentInstanceLocation, currentInstanceWorld } = storeToRefs(useInstanceStore()); const { currentInstanceLocation, currentInstanceWorld } = storeToRefs(useInstanceStore());
const { currentInstanceUserList, getCurrentInstanceUserList } = useInstanceStore(); const { currentInstanceUsersTable, getCurrentInstanceUserList } = useInstanceStore();
const { menuActiveIndex } = storeToRefs(useUiStore()); const { menuActiveIndex } = storeToRefs(useUiStore());
const { showFullscreenImageDialog } = useGalleryStore(); const { showFullscreenImageDialog } = useGalleryStore();
const { currentUser } = storeToRefs(useUserStore()); const { currentUser } = storeToRefs(useUserStore());