mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-18 06:13:52 +02:00
fix some ui issue
This commit is contained in:
@@ -1501,6 +1501,10 @@
|
||||
}
|
||||
);
|
||||
|
||||
/**
|
||||
*
|
||||
* @param visibility
|
||||
*/
|
||||
function userFavoriteWorldsStatus(visibility) {
|
||||
const style = {};
|
||||
if (visibility === 'public') {
|
||||
@@ -1513,6 +1517,10 @@
|
||||
return style;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param user
|
||||
*/
|
||||
function getUserStateText(user) {
|
||||
let state = '';
|
||||
if (user.state === 'active') {
|
||||
@@ -1528,6 +1536,10 @@
|
||||
return state;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param status
|
||||
*/
|
||||
function getUserStatusText(status) {
|
||||
if (status === 'active') {
|
||||
return t('dialog.user.status.active');
|
||||
@@ -1544,6 +1556,9 @@
|
||||
return t('dialog.user.status.offline');
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function refreshUserDialogTreeData() {
|
||||
const D = userDialog.value;
|
||||
if (D.id === currentUser.value.id) {
|
||||
@@ -1556,6 +1571,10 @@
|
||||
treeData.value = formatJsonVars(D.ref);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param tabName
|
||||
*/
|
||||
function handleUserDialogTab(tabName) {
|
||||
userDialog.value.lastActiveTab = tabName;
|
||||
const userId = userDialog.value.id;
|
||||
@@ -1604,10 +1623,17 @@
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function loadLastActiveTab() {
|
||||
handleUserDialogTab(userDialog.value.lastActiveTab);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param tabName
|
||||
*/
|
||||
function userDialogTabClick(tabName) {
|
||||
if (tabName === userDialog.value.lastActiveTab) {
|
||||
if (tabName === 'JSON') {
|
||||
@@ -1618,17 +1644,26 @@
|
||||
handleUserDialogTab(tabName);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function showPronounsDialog() {
|
||||
const D = pronounsDialog.value;
|
||||
D.pronouns = currentUser.value.pronouns;
|
||||
D.visible = true;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function showLanguageDialog() {
|
||||
const D = languageDialog.value;
|
||||
D.visible = true;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function showSocialStatusDialog() {
|
||||
const D = socialStatusDialog.value;
|
||||
const { statusHistory } = currentUser.value;
|
||||
@@ -1646,6 +1681,10 @@
|
||||
D.visible = true;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param userId
|
||||
*/
|
||||
async function setUserDialogAvatarsRemote(userId) {
|
||||
if (avatarRemoteDatabase.value && userId !== currentUser.value.id) {
|
||||
userDialog.value.isAvatarsLoading = true;
|
||||
@@ -1672,6 +1711,10 @@
|
||||
sortUserDialogAvatars(userDialog.value.avatars);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param badge
|
||||
*/
|
||||
async function toggleBadgeVisibility(badge) {
|
||||
if (badge.hidden) {
|
||||
badge.showcased = false;
|
||||
@@ -1684,6 +1727,10 @@
|
||||
handleBadgeUpdate(args);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param badge
|
||||
*/
|
||||
async function toggleBadgeShowcased(badge) {
|
||||
if (badge.showcased) {
|
||||
badge.hidden = false;
|
||||
@@ -1696,12 +1743,21 @@
|
||||
handleBadgeUpdate(args);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param args
|
||||
*/
|
||||
function handleBadgeUpdate(args) {
|
||||
if (args.json) {
|
||||
toast.success(t('message.badge.updated'));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param userId
|
||||
* @param type
|
||||
*/
|
||||
function setPlayerModeration(userId, type) {
|
||||
const D = userDialog.value;
|
||||
AppApi.SetVRChatUserModeration(currentUser.value.id, userId, type).then((result) => {
|
||||
@@ -1722,6 +1778,11 @@
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param params
|
||||
* @param userId
|
||||
*/
|
||||
function showSendInviteDialog(params, userId) {
|
||||
sendInviteDialog.value = {
|
||||
params,
|
||||
@@ -1733,6 +1794,11 @@
|
||||
sendInviteDialogVisible.value = true;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param params
|
||||
* @param userId
|
||||
*/
|
||||
function showSendInviteRequestDialog(params, userId) {
|
||||
sendInviteDialog.value = {
|
||||
params,
|
||||
@@ -1744,12 +1810,21 @@
|
||||
sendInviteRequestDialogVisible.value = true;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param groupId
|
||||
* @param userId
|
||||
*/
|
||||
function showInviteGroupDialog(groupId, userId) {
|
||||
inviteGroupDialog.value.groupId = groupId;
|
||||
inviteGroupDialog.value.userId = userId;
|
||||
inviteGroupDialog.value.visible = true;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param command
|
||||
*/
|
||||
function userDialogCommand(command) {
|
||||
let L;
|
||||
const D = userDialog.value;
|
||||
@@ -1892,6 +1967,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param args
|
||||
*/
|
||||
function handleSendFriendRequest(args) {
|
||||
const ref = cachedUsers.get(args.params.userId);
|
||||
if (typeof ref === 'undefined') {
|
||||
@@ -1917,6 +1996,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param args
|
||||
*/
|
||||
function handleCancelFriendRequest(args) {
|
||||
const ref = cachedUsers.get(args.params.userId);
|
||||
if (typeof ref === 'undefined') {
|
||||
@@ -1937,6 +2020,10 @@
|
||||
D.outgoingRequest = false;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param args
|
||||
*/
|
||||
function handleSendPlayerModeration(args) {
|
||||
const ref = applyPlayerModeration(args.json);
|
||||
const D = userDialog.value;
|
||||
@@ -1955,6 +2042,11 @@
|
||||
toast.success(t('message.user.moderated'));
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param command
|
||||
* @param userId
|
||||
*/
|
||||
async function performUserDialogCommand(command, userId) {
|
||||
let args;
|
||||
let key;
|
||||
@@ -2092,6 +2184,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param userId
|
||||
*/
|
||||
function reportUserForHacking(userId) {
|
||||
miscRequest.reportUser({
|
||||
userId,
|
||||
@@ -2101,6 +2197,10 @@
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param userId
|
||||
*/
|
||||
async function getUserGroups(userId) {
|
||||
exitEditModeCurrentUserGroups();
|
||||
userDialog.value.isGroupsLoading = true;
|
||||
@@ -2161,6 +2261,10 @@
|
||||
userDialog.value.isGroupsLoading = false;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param userId
|
||||
*/
|
||||
async function getUserMutualFriends(userId) {
|
||||
userDialog.value.mutualFriends = [];
|
||||
if (currentUser.value.hasSharedConnectionsOptOut) {
|
||||
@@ -2200,6 +2304,11 @@
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param a
|
||||
* @param b
|
||||
*/
|
||||
function sortGroupsByInGame(a, b) {
|
||||
const aIndex = inGameGroupOrder.value.indexOf(a?.id);
|
||||
const bIndex = inGameGroupOrder.value.indexOf(b?.id);
|
||||
@@ -2215,6 +2324,9 @@
|
||||
return aIndex - bIndex;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
async function sortCurrentUserGroups() {
|
||||
const D = userDialog.value;
|
||||
let sortMethod = () => 0;
|
||||
@@ -2237,6 +2349,10 @@
|
||||
userDialog.value.userGroups.remainingGroups.sort(sortMethod);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param userId
|
||||
*/
|
||||
function setUserDialogAvatars(userId) {
|
||||
const avatars = new Set();
|
||||
userDialogAvatars.value.forEach((avatar) => {
|
||||
@@ -2250,6 +2366,10 @@
|
||||
sortUserDialogAvatars(userDialog.value.avatars);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param userId
|
||||
*/
|
||||
function setUserDialogWorlds(userId) {
|
||||
const worlds = [];
|
||||
for (const ref of cachedWorlds.values()) {
|
||||
@@ -2260,6 +2380,9 @@
|
||||
userDialog.value.worlds = worlds;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function refreshUserDialogWorlds() {
|
||||
const D = userDialog.value;
|
||||
if (D.isWorldsLoading) {
|
||||
@@ -2306,6 +2429,10 @@
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param userId
|
||||
*/
|
||||
async function getUserFavoriteWorlds(userId) {
|
||||
userDialog.value.isFavoriteWorldsLoading = true;
|
||||
favoriteWorldsTab.value = '0';
|
||||
@@ -2344,6 +2471,9 @@
|
||||
userDialog.value.isFavoriteWorldsLoading = false;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function showBioDialog() {
|
||||
const D = bioDialog.value;
|
||||
D.bio = currentUser.value.bio;
|
||||
@@ -2351,6 +2481,9 @@
|
||||
D.visible = true;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
async function translateBio() {
|
||||
if (translateLoading.value) {
|
||||
return;
|
||||
@@ -2388,22 +2521,35 @@
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param userRef
|
||||
*/
|
||||
function showPreviousInstancesListDialog(userRef) {
|
||||
instanceStore.showPreviousInstancesListDialog('user', userRef);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function toggleAvatarCopying() {
|
||||
userRequest.saveCurrentUser({
|
||||
allowAvatarCopying: !currentUser.value.allowAvatarCopying
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function toggleAllowBooping() {
|
||||
userRequest.saveCurrentUser({
|
||||
isBoopingEnabled: !currentUser.value.isBoopingEnabled
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function resetHome() {
|
||||
modalStore
|
||||
.confirm({
|
||||
@@ -2426,14 +2572,26 @@
|
||||
.catch(() => {});
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param userId
|
||||
*/
|
||||
function copyUserId(userId) {
|
||||
copyToClipboard(userId, 'User ID copied to clipboard');
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param userId
|
||||
*/
|
||||
function copyUserURL(userId) {
|
||||
copyToClipboard(`https://vrchat.com/home/user/${userId}`, 'User URL copied to clipboard');
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param displayName
|
||||
*/
|
||||
function copyUserDisplayName(displayName) {
|
||||
copyToClipboard(displayName, 'User DisplayName copied to clipboard');
|
||||
}
|
||||
@@ -2449,6 +2607,10 @@
|
||||
return found ? String(found[0]) : '';
|
||||
});
|
||||
|
||||
/**
|
||||
*
|
||||
* @param key
|
||||
*/
|
||||
function setUserDialogGroupSortingByKey(key) {
|
||||
const option = userDialogGroupSortingOptions[key];
|
||||
if (!option) {
|
||||
@@ -2457,6 +2619,10 @@
|
||||
setUserDialogGroupSorting(option);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param sortOrder
|
||||
*/
|
||||
async function setUserDialogGroupSorting(sortOrder) {
|
||||
const D = userDialog.value;
|
||||
if (D.groupSorting.value === sortOrder.value) {
|
||||
@@ -2477,6 +2643,10 @@
|
||||
return found ? String(found[0]) : '';
|
||||
});
|
||||
|
||||
/**
|
||||
*
|
||||
* @param key
|
||||
*/
|
||||
function setUserDialogMutualFriendSortingByKey(key) {
|
||||
const option = userDialogMutualFriendSortingOptions[key];
|
||||
if (!option) {
|
||||
@@ -2485,6 +2655,10 @@
|
||||
setUserDialogMutualFriendSorting(option);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param sortOrder
|
||||
*/
|
||||
async function setUserDialogMutualFriendSorting(sortOrder) {
|
||||
const D = userDialog.value;
|
||||
D.mutualFriendSorting = sortOrder;
|
||||
@@ -2501,6 +2675,9 @@
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
async function exitEditModeCurrentUserGroups() {
|
||||
userDialogGroupEditMode.value = false;
|
||||
userDialogGroupEditGroups.value = [];
|
||||
@@ -2509,6 +2686,9 @@
|
||||
await sortCurrentUserGroups();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
async function editModeCurrentUserGroups() {
|
||||
await updateInGameGroupOrder();
|
||||
userDialogGroupEditGroups.value = Array.from(currentUserGroups.value.values());
|
||||
@@ -2516,6 +2696,9 @@
|
||||
userDialogGroupEditMode.value = true;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
async function saveInGameGroupOrder() {
|
||||
userDialogGroupEditGroups.value.sort(sortGroupsByInGame);
|
||||
try {
|
||||
@@ -2531,6 +2714,9 @@
|
||||
}
|
||||
|
||||
// Select all groups currently in the editable list by collecting their IDs
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function selectAllGroups() {
|
||||
const allSelected = userDialogGroupEditSelectedGroupIds.value.length === userDialogGroupEditGroups.value.length;
|
||||
|
||||
@@ -2547,6 +2733,10 @@
|
||||
|
||||
const bulkGroupActionValue = ref('');
|
||||
|
||||
/**
|
||||
*
|
||||
* @param value
|
||||
*/
|
||||
function handleBulkGroupAction(value) {
|
||||
bulkGroupActionValue.value = value;
|
||||
|
||||
@@ -2563,6 +2753,10 @@
|
||||
}
|
||||
|
||||
// Apply the given visibility to all selected groups
|
||||
/**
|
||||
*
|
||||
* @param newVisibility
|
||||
*/
|
||||
async function bulkSetVisibility(newVisibility) {
|
||||
for (const groupId of userDialogGroupEditSelectedGroupIds.value) {
|
||||
setGroupVisibility(groupId, newVisibility);
|
||||
@@ -2570,6 +2764,9 @@
|
||||
}
|
||||
|
||||
// Leave (remove user from) all selected groups
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function bulkLeaveGroups() {
|
||||
for (const groupId of userDialogGroupEditSelectedGroupIds.value) {
|
||||
leaveGroup(groupId);
|
||||
@@ -2577,6 +2774,10 @@
|
||||
}
|
||||
|
||||
// Toggle individual group selection for bulk actions
|
||||
/**
|
||||
*
|
||||
* @param groupId
|
||||
*/
|
||||
function toggleGroupSelection(groupId) {
|
||||
const index = userDialogGroupEditSelectedGroupIds.value.indexOf(groupId);
|
||||
if (index === -1) {
|
||||
@@ -2586,6 +2787,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param groupId
|
||||
*/
|
||||
function moveGroupUp(groupId) {
|
||||
const index = inGameGroupOrder.value.indexOf(groupId);
|
||||
if (index > 0) {
|
||||
@@ -2595,6 +2800,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param groupId
|
||||
*/
|
||||
function moveGroupDown(groupId) {
|
||||
const index = inGameGroupOrder.value.indexOf(groupId);
|
||||
if (index < inGameGroupOrder.value.length - 1) {
|
||||
@@ -2604,6 +2813,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param groupId
|
||||
*/
|
||||
function moveGroupTop(groupId) {
|
||||
const index = inGameGroupOrder.value.indexOf(groupId);
|
||||
if (index > 0) {
|
||||
@@ -2613,6 +2826,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param groupId
|
||||
*/
|
||||
function moveGroupBottom(groupId) {
|
||||
const index = inGameGroupOrder.value.indexOf(groupId);
|
||||
if (index < inGameGroupOrder.value.length - 1) {
|
||||
@@ -2622,6 +2839,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param sortOrder
|
||||
*/
|
||||
async function setUserDialogWorldSorting(sortOrder) {
|
||||
const D = userDialog.value;
|
||||
if (D.worldSorting.value === sortOrder.value) {
|
||||
@@ -2642,6 +2863,10 @@
|
||||
return found ? String(found[0]) : '';
|
||||
});
|
||||
|
||||
/**
|
||||
*
|
||||
* @param key
|
||||
*/
|
||||
function setUserDialogWorldSortingByKey(key) {
|
||||
const option = userDialogWorldSortingOptions[key];
|
||||
if (!option) {
|
||||
@@ -2650,6 +2875,10 @@
|
||||
setUserDialogWorldSorting(option);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param order
|
||||
*/
|
||||
async function setUserDialogWorldOrder(order) {
|
||||
const D = userDialog.value;
|
||||
if (D.worldOrder.value === order.value) {
|
||||
@@ -2670,6 +2899,10 @@
|
||||
return found ? String(found[0]) : '';
|
||||
});
|
||||
|
||||
/**
|
||||
*
|
||||
* @param key
|
||||
*/
|
||||
function setUserDialogWorldOrderByKey(key) {
|
||||
const option = userDialogWorldOrderOptions[key];
|
||||
if (!option) {
|
||||
@@ -2678,16 +2911,26 @@
|
||||
setUserDialogWorldOrder(option);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param sortOption
|
||||
*/
|
||||
function changeUserDialogAvatarSorting(sortOption) {
|
||||
const D = userDialog.value;
|
||||
D.avatarSorting = sortOption;
|
||||
sortUserDialogAvatars(D.avatars);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function closeInviteDialog() {
|
||||
clearInviteImageUpload();
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
function getVRChatCredits() {
|
||||
miscRequest.getVRChatCredits().then((args) => (vrchatCredit.value = args.json?.balance));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user