mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-05-07 14:56:06 +02:00
Fix searching group members
This commit is contained in:
@@ -1212,7 +1212,8 @@
|
|||||||
userImage,
|
userImage,
|
||||||
userStatusClass,
|
userStatusClass,
|
||||||
formatDateFilter,
|
formatDateFilter,
|
||||||
textToHex
|
textToHex,
|
||||||
|
debounce
|
||||||
} from '../../../shared/utils';
|
} from '../../../shared/utils';
|
||||||
import {
|
import {
|
||||||
useAppearanceSettingsStore,
|
useAppearanceSettingsStore,
|
||||||
@@ -1253,8 +1254,6 @@
|
|||||||
const groupDialogRef = ref(null);
|
const groupDialogRef = ref(null);
|
||||||
const isGroupMembersDone = ref(false);
|
const isGroupMembersDone = ref(false);
|
||||||
const isGroupMembersLoading = ref(false);
|
const isGroupMembersLoading = ref(false);
|
||||||
const groupMembersSearchTimer = ref(null);
|
|
||||||
const groupMembersSearchPending = ref(false);
|
|
||||||
const groupDialogGalleryCurrentName = ref('0');
|
const groupDialogGalleryCurrentName = ref('0');
|
||||||
const groupDialogTabCurrentName = ref('0');
|
const groupDialogTabCurrentName = ref('0');
|
||||||
const isGroupGalleryLoading = ref(false);
|
const isGroupGalleryLoading = ref(false);
|
||||||
@@ -1328,37 +1327,22 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function groupMembersSearch() {
|
function groupMembersSearch() {
|
||||||
if (groupMembersSearchTimer.value) {
|
if (groupDialog.value.memberSearch.length < 3) {
|
||||||
groupMembersSearchPending.value = true;
|
groupDialog.value.memberSearchResults = [];
|
||||||
} else {
|
isGroupMembersLoading.value = false;
|
||||||
groupMembersSearchExecute();
|
return;
|
||||||
groupMembersSearchTimer.value = setTimeout(() => {
|
|
||||||
if (groupMembersSearchPending.value) {
|
|
||||||
groupMembersSearchExecute();
|
|
||||||
}
|
|
||||||
groupMembersSearchTimer.value = null;
|
|
||||||
}, 500);
|
|
||||||
}
|
}
|
||||||
|
debounce(groupMembersSearchDebounced, 200)();
|
||||||
}
|
}
|
||||||
|
|
||||||
function groupMembersSearchExecute() {
|
function groupMembersSearchDebounced() {
|
||||||
try {
|
|
||||||
groupMembersSearchDebounce();
|
|
||||||
} catch (err) {
|
|
||||||
console.error(err);
|
|
||||||
}
|
|
||||||
groupMembersSearchTimer.value = null;
|
|
||||||
groupMembersSearchPending.value = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
function groupMembersSearchDebounce() {
|
|
||||||
const D = groupDialog.value;
|
const D = groupDialog.value;
|
||||||
const search = D.memberSearch;
|
const search = D.memberSearch;
|
||||||
D.memberSearchResults = [];
|
D.memberSearchResults = [];
|
||||||
if (!search || search.length < 3) {
|
if (!search || search.length < 3) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
isGroupMembersLoading.value = false;
|
isGroupMembersLoading.value = true;
|
||||||
groupRequest
|
groupRequest
|
||||||
.getGroupMembersSearch({
|
.getGroupMembersSearch({
|
||||||
groupId: D.id,
|
groupId: D.id,
|
||||||
|
|||||||
@@ -846,7 +846,7 @@
|
|||||||
import * as workerTimers from 'worker-timers';
|
import * as workerTimers from 'worker-timers';
|
||||||
import { groupRequest, userRequest } from '../../../api';
|
import { groupRequest, userRequest } from '../../../api';
|
||||||
import { groupDialogFilterOptions, groupDialogSortingOptions } from '../../../shared/constants';
|
import { groupDialogFilterOptions, groupDialogSortingOptions } from '../../../shared/constants';
|
||||||
import { hasGroupPermission, userImage, userImageFull, formatDateFilter } from '../../../shared/utils';
|
import { hasGroupPermission, userImage, userImageFull, formatDateFilter, debounce } from '../../../shared/utils';
|
||||||
import { useAppearanceSettingsStore, useGalleryStore, useGroupStore, useUserStore } from '../../../stores';
|
import { useAppearanceSettingsStore, useGalleryStore, useGroupStore, useUserStore } from '../../../stores';
|
||||||
import GroupMemberModerationExportDialog from './GroupMemberModerationExportDialog.vue';
|
import GroupMemberModerationExportDialog from './GroupMemberModerationExportDialog.vue';
|
||||||
|
|
||||||
@@ -864,7 +864,6 @@
|
|||||||
const selectedUsersArray = ref([]);
|
const selectedUsersArray = ref([]);
|
||||||
const isGroupMembersLoading = ref(false);
|
const isGroupMembersLoading = ref(false);
|
||||||
const isGroupMembersDone = ref(false);
|
const isGroupMembersDone = ref(false);
|
||||||
const groupMembersSearch = ref('');
|
|
||||||
const memberFilter = ref({
|
const memberFilter = ref({
|
||||||
id: null,
|
id: null,
|
||||||
name: 'dialog.group.members.filters.everyone'
|
name: 'dialog.group.members.filters.everyone'
|
||||||
@@ -1774,6 +1773,52 @@
|
|||||||
.replace(/\b\w/g, (l) => l.toUpperCase());
|
.replace(/\b\w/g, (l) => l.toUpperCase());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function groupMembersSearch() {
|
||||||
|
if (memberSearch.value.length < 3) {
|
||||||
|
groupMemberModerationTable.data = [];
|
||||||
|
isGroupMembersLoading.value = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
isGroupMembersLoading.value = true;
|
||||||
|
debounce(groupMembersSearchDebounced, 200)();
|
||||||
|
}
|
||||||
|
|
||||||
|
function groupMembersSearchDebounced() {
|
||||||
|
const groupId = groupMemberModeration.value.id;
|
||||||
|
const search = memberSearch.value;
|
||||||
|
groupMemberModerationTable.data = [];
|
||||||
|
if (memberSearch.value.length < 3) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
isGroupMembersLoading.value = true;
|
||||||
|
groupRequest
|
||||||
|
.getGroupMembersSearch({
|
||||||
|
groupId,
|
||||||
|
query: search,
|
||||||
|
n: 100,
|
||||||
|
offset: 0
|
||||||
|
})
|
||||||
|
.then((args) => {
|
||||||
|
for (const json of args.json.results) {
|
||||||
|
handleGroupMember({
|
||||||
|
json,
|
||||||
|
params: {
|
||||||
|
groupId: args.params.groupId
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (groupId === args.params.groupId) {
|
||||||
|
groupMemberModerationTable.data = args.json.results.map((member) => ({
|
||||||
|
...member,
|
||||||
|
$selected: Boolean(selectedUsers[member.userId])
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
isGroupMembersLoading.value = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
async function getGroupMembers() {
|
async function getGroupMembers() {
|
||||||
members.value = [];
|
members.value = [];
|
||||||
isGroupMembersDone.value = false;
|
isGroupMembersDone.value = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user