From 68a20aec07b26f4c64b4ddeb7007db7495d7d49b Mon Sep 17 00:00:00 2001 From: Natsumi Date: Tue, 31 Oct 2023 19:35:12 +1300 Subject: [PATCH] Fix group moderation table scrolling to top on selection Fix current user status state not matching UI --- Dotnet/ProcessMonitor.cs | 2 +- html/src/app.js | 20 ++++++++++++-------- html/src/index.pug | 2 +- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/Dotnet/ProcessMonitor.cs b/Dotnet/ProcessMonitor.cs index ac84a5a4..37c0578a 100644 --- a/Dotnet/ProcessMonitor.cs +++ b/Dotnet/ProcessMonitor.cs @@ -199,7 +199,7 @@ namespace VRCX public void ProcessStarted(Process process) { - Process = process; + Process = process; ProcessName = process.ProcessName.ToLower(); IsRunning = true; } diff --git a/html/src/app.js b/html/src/app.js index a051b755..7bc962e8 100644 --- a/html/src/app.js +++ b/html/src/app.js @@ -1976,6 +1976,9 @@ speechSynthesis.getVoices(); } } if (ref.id === this.currentUser.id) { + if (ref.status) { + this.currentUser.status = ref.status; + } $app.updateCurrentUserLocation(); } this.$emit('USER:APPLY', ref); @@ -29072,10 +29075,11 @@ speechSynthesis.getVoices(); small: true, layout: 'sizes,prev,pager,next,total', pageSizes: [10, 15, 25, 50, 100] - }, - key: 0 + } }; + $app.data.groupMemberModerationTableForceUpdate = 0; + $app.methods.setGroupMemberModerationTable = function (data) { if (!this.groupMemberModeration.visible) { return; @@ -29088,7 +29092,7 @@ speechSynthesis.getVoices(); } this.groupMemberModerationTable.data = data; // force redraw - this.groupMemberModerationTable.key++; + this.groupMemberModerationTableForceUpdate++; }; $app.methods.showGroupMemberModerationDialog = function (groupId) { @@ -29107,7 +29111,7 @@ speechSynthesis.getVoices(); API.getCachedGroup({ groupId }).then((args) => { D.groupRef = args.ref; }); - this.groupMemberModerationTable.key = 0; + this.groupMemberModerationTableForceUpdate = 0; D.visible = true; this.setGroupMemberModerationTable(this.groupDialog.members); }; @@ -29121,7 +29125,7 @@ speechSynthesis.getVoices(); } D.selectedUsersArray = Array.from(D.selectedUsers.values()); // force redraw - this.groupMemberModerationTable.key++; + this.groupMemberModerationTableForceUpdate++; }; $app.methods.deleteSelectedGroupMember = function (user) { @@ -29136,7 +29140,7 @@ speechSynthesis.getVoices(); } } // force redraw - this.groupMemberModerationTable.key++; + this.groupMemberModerationTableForceUpdate++; }; $app.methods.clearSelectedGroupMembers = function () { @@ -29148,7 +29152,7 @@ speechSynthesis.getVoices(); row.$selected = false; } // force redraw - this.groupMemberModerationTable.key++; + this.groupMemberModerationTableForceUpdate++; }; $app.methods.selectAllGroupMembers = function () { @@ -29160,7 +29164,7 @@ speechSynthesis.getVoices(); } D.selectedUsersArray = Array.from(D.selectedUsers.values()); // force redraw - this.groupMemberModerationTable.key++; + this.groupMemberModerationTableForceUpdate++; }; $app.methods.groupMembersKick = async function () { diff --git a/html/src/index.pug b/html/src/index.pug index 85f56823..f22cdf43 100644 --- a/html/src/index.pug +++ b/html/src/index.pug @@ -2859,7 +2859,7 @@ html br el-button(size="small" @click="selectAllGroupMembers") {{ $t('dialog.group_member_moderation.select_all') }} data-tables(v-bind="groupMemberModerationTable" style="margin-top:10px") - el-table-column(width="55" prop="$selected" :key="groupMemberModerationTable.key") + el-table-column(width="55" prop="$selected" :key="groupMemberModerationTableForceUpdate") template(v-once #default="scope") el-button(type="text" size="mini" @click.stop) el-checkbox(v-model="scope.row.$selected" @change="groupMemberModerationTableSelectionChange(scope.row)")