diff --git a/src/components/dialogs/UserDialog/UserActionDropdown.vue b/src/components/dialogs/UserDialog/UserActionDropdown.vue
new file mode 100644
index 00000000..76cd765d
--- /dev/null
+++ b/src/components/dialogs/UserDialog/UserActionDropdown.vue
@@ -0,0 +1,250 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ t('dialog.user.actions.refresh')
+ }}
+ {{
+ t('dialog.user.actions.share')
+ }}
+
+ {{
+ t('dialog.user.actions.manage_gallery_inventory_icon')
+ }}
+ {{
+ t('dialog.user.actions.show_avatar_author')
+ }}
+ {{
+ t('dialog.user.actions.show_fallback_avatar')
+ }}
+ {{
+ t('dialog.user.actions.edit_status')
+ }}
+ {{
+ t('dialog.user.actions.edit_language')
+ }}
+ {{
+ t('dialog.user.actions.edit_bio')
+ }}
+ {{
+ t('dialog.user.actions.edit_pronouns')
+ }}
+ {{
+ t('dialog.user.actions.logout')
+ }}
+
+
+
+ {{
+ t('dialog.user.actions.request_invite')
+ }}
+ {{
+ t('dialog.user.actions.request_invite_with_message')
+ }}
+
+ {{ t('dialog.user.actions.invite') }}
+ {{ t('dialog.user.actions.invite_with_message') }}
+
+
+
+ {{
+ t('dialog.user.actions.accept_friend_request')
+ }}
+ {{
+ t('dialog.user.actions.decline_friend_request')
+ }}
+
+
+ {{ t('dialog.user.actions.cancel_friend_request') }}
+
+ {{
+ t('dialog.user.actions.send_friend_request')
+ }}
+ {{
+ t('dialog.user.actions.invite_to_group')
+ }}
+ {{
+ t('dialog.user.actions.group_moderation')
+ }}
+ {{
+ t('dialog.user.actions.show_avatar_author')
+ }}
+ {{
+ t('dialog.user.actions.show_fallback_avatar')
+ }}
+ {{
+ t('dialog.user.actions.show_previous_instances')
+ }}
+
+ {{ t('dialog.user.actions.moderation_unblock') }}
+
+
+ {{ t('dialog.user.actions.moderation_block') }}
+
+
+ {{ t('dialog.user.actions.moderation_unmute') }}
+
+
+ {{ t('dialog.user.actions.moderation_mute') }}
+
+
+ {{ t('dialog.user.actions.moderation_enable_chatbox') }}
+
+
+ {{ t('dialog.user.actions.moderation_disable_chatbox') }}
+
+
+
+ {{ t('dialog.user.actions.moderation_show_avatar') }}
+
+
+
+ {{ t('dialog.user.actions.moderation_hide_avatar') }}
+
+
+ {{ t('dialog.user.actions.moderation_enable_avatar_interaction') }}
+
+
+ {{ t('dialog.user.actions.moderation_disable_avatar_interaction') }}
+
+
+ {{ t('dialog.user.actions.report_hacking') }}
+
+
+
+ {{ t('dialog.user.actions.unfriend') }}
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/dialogs/UserDialog/UserDialog.vue b/src/components/dialogs/UserDialog/UserDialog.vue
index 059ec096..e11f2f44 100644
--- a/src/components/dialogs/UserDialog/UserDialog.vue
+++ b/src/components/dialogs/UserDialog/UserDialog.vue
@@ -6,491 +6,12 @@
:show-close="false"
width="770px">
-
-
![]()
-
![]()
-
-
-
-
-
-
- {{ getUserStateText(userDialog.ref) }}
-
-
-
-
-
-
- {{ t('dialog.user.previous_display_names') }}
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ item.value }} ({{ item.key }})
-
-
-
-
-
-
-
-
-
-
- {{ userDialog.ref.$trustLevel }}
-
-
- {{
- t('dialog.user.tags.friend_no', {
- number: userDialog.ref.$friendNumber ? userDialog.ref.$friendNumber : ''
- })
- }}
-
-
- Nuisance
-
-
- Almost Nuisance
-
-
- {{ t('dialog.user.tags.vrchat_team') }}
-
-
- PC
-
-
- Android
-
-
iOS
-
- {{ userDialog.ref.$platform }}
-
-
-
- {{ t('dialog.user.tags.18_plus_verified') }}
-
-
- {{ t('dialog.user.tags.age_verified') }}
-
-
-
{{ userDialog.ref.$customTag }}
-
-
-
- {{ badge.badgeName }}
- (Hidden)
-
-
-
-
-
-
-
-
-
- {{ badge.badgeName }}
-
- {{
- badge.badgeDescription
- }}
-
-
- {{ t('dialog.user.badges.assigned') }}:
- {{ formatDateFilter(badge.assignedAt, 'long') }}
-
-
-
-
- {{ t('dialog.user.badges.hidden') }}
-
-
-
- {{ t('dialog.user.badges.showcased') }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
![]()
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{
- t('dialog.user.actions.refresh')
- }}
- {{
- t('dialog.user.actions.share')
- }}
-
- {{
- t('dialog.user.actions.manage_gallery_inventory_icon')
- }}
- {{
- t('dialog.user.actions.show_avatar_author')
- }}
- {{
- t('dialog.user.actions.show_fallback_avatar')
- }}
- {{
- t('dialog.user.actions.edit_status')
- }}
- {{
- t('dialog.user.actions.edit_language')
- }}
- {{
- t('dialog.user.actions.edit_bio')
- }}
- {{
- t('dialog.user.actions.edit_pronouns')
- }}
- {{
- t('dialog.user.actions.logout')
- }}
-
-
-
- {{
- t('dialog.user.actions.request_invite')
- }}
- {{
- t('dialog.user.actions.request_invite_with_message')
- }}
-
- {{ t('dialog.user.actions.invite') }}
- {{
- t('dialog.user.actions.invite_with_message')
- }}
-
-
-
- {{
- t('dialog.user.actions.accept_friend_request')
- }}
- {{
- t('dialog.user.actions.decline_friend_request')
- }}
-
-
- {{ t('dialog.user.actions.cancel_friend_request') }}
-
- {{
- t('dialog.user.actions.send_friend_request')
- }}
- {{
- t('dialog.user.actions.invite_to_group')
- }}
- {{
- t('dialog.user.actions.group_moderation')
- }}
-
- {{
- t('dialog.user.actions.show_avatar_author')
- }}
- {{
- t('dialog.user.actions.show_fallback_avatar')
- }}
- {{
- t('dialog.user.actions.show_previous_instances')
- }}
-
- {{ t('dialog.user.actions.moderation_unblock') }}
-
-
- {{ t('dialog.user.actions.moderation_block') }}
-
-
- {{ t('dialog.user.actions.moderation_unmute') }}
-
-
- {{ t('dialog.user.actions.moderation_mute') }}
-
-
- {{ t('dialog.user.actions.moderation_enable_chatbox') }}
-
-
- {{ t('dialog.user.actions.moderation_disable_chatbox') }}
-
-
-
- {{ t('dialog.user.actions.moderation_show_avatar') }}
-
-
-
- {{ t('dialog.user.actions.moderation_hide_avatar') }}
-
-
- {{ t('dialog.user.actions.moderation_enable_avatar_interaction') }}
-
-
- {{ t('dialog.user.actions.moderation_disable_avatar_interaction') }}
-
-
- {{ t('dialog.user.actions.report_hacking') }}
-
-
-
- {{ t('dialog.user.actions.unfriend') }}
-
-
-
-
-
-
-
-
-
+
@@ -1692,40 +1213,19 @@
import {
ArrowDown,
Bottom,
- CaretBottom,
- ChatDotRound,
- ChatLineRound,
Check,
- CircleCheck,
- CircleClose,
Close,
CollectionTag,
CopyDocument,
- DataLine,
Delete,
Download,
Edit,
- Flag,
Loading,
- Message,
- Microphone,
More,
MoreFilled,
- Mute,
- Operation,
- Picture,
- Plus,
- Pointer,
- Postcard,
Refresh,
Setting,
- Share,
- Star,
- StarFilled,
- SwitchButton,
Top,
- User,
- UserFilled,
View,
Warning
} from '@element-plus/icons-vue';
@@ -1735,7 +1235,6 @@
import { useI18n } from 'vue-i18n';
import {
- checkCanInvite,
compareByMemberCount,
compareByName,
copyToClipboard,
@@ -1744,7 +1243,6 @@
getFaviconUrl,
isFriendOnline,
isRealInstance,
- languageClass,
openExternalLink,
parseLocation,
refreshInstancePlayerCount,
@@ -1764,7 +1262,6 @@
useFavoriteStore,
useFriendStore,
useGalleryStore,
- useGameStore,
useGroupStore,
useInviteStore,
useLocationStore,
@@ -1790,6 +1287,7 @@
import { userDialogGroupSortingOptions } from '../../../shared/constants';
import SendInviteDialog from '../InviteDialog/SendInviteDialog.vue';
+ import UserSummaryHeader from './UserSummaryHeader.vue';
const BioDialog = defineAsyncComponent(() => import('./BioDialog.vue'));
const LanguageDialog = defineAsyncComponent(() => import('./LanguageDialog.vue'));
@@ -1828,7 +1326,7 @@
const { friendLogTable } = storeToRefs(useFriendStore());
const { getFriendRequest, handleFriendDelete } = useFriendStore();
const { clearInviteImageUpload, showFullscreenImageDialog } = useGalleryStore();
- const { isGameRunning } = storeToRefs(useGameStore());
+
const { logout } = useAuthStore();
const { cachedConfig } = storeToRefs(useAuthStore());
const { applyPlayerModeration, handlePlayerModerationDelete } = useModerationStore();
@@ -2567,7 +2065,7 @@
async function sortCurrentUserGroups() {
const D = userDialog.value;
- let sortMethod = (a, b) => 0;
+ let sortMethod = () => 0;
switch (D.groupSorting.value) {
case 'alphabetical':
diff --git a/src/components/dialogs/UserDialog/UserSummaryHeader.vue b/src/components/dialogs/UserDialog/UserSummaryHeader.vue
new file mode 100644
index 00000000..9e0abb54
--- /dev/null
+++ b/src/components/dialogs/UserDialog/UserSummaryHeader.vue
@@ -0,0 +1,458 @@
+
+
+
![]()
+
![]()
+
+
+
+
+
+
+ {{ getUserStateText(userDialog.ref) }}
+
+
+
+
+
+
+ {{ t('dialog.user.previous_display_names') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.value }} ({{ item.key }})
+
+
+
+
+
+
+
+
+
+
+ {{ t('dialog.user.tags.pinned_favorite') }}
+
+
+ {{ userDialog.ref.$favoriteGroupName }}
+
+
+ {{ t('dialog.user.tags.vrchat_moderator') }}
+
+
+ {{ t('dialog.user.tags.vrchat_staff') }}
+
+
+ {{ t('dialog.user.tags.vrchat_friends_plus') }}
+
+
+ {{ t('dialog.user.tags.updated_trust') }}
+
+
+ {{ t('dialog.user.tags.guardians') }}
+
+
+ {{ t('dialog.user.tags.supporter') }}
+
+
+ {{ t('dialog.user.tags.quest_patron') }}
+
+
+ {{ t('dialog.user.tags.vrchat_plus') }}
+
+
+ {{ t('dialog.user.tags.legend') }}
+
+
+ {{ t('dialog.user.tags.trusted') }}
+
+
+ {{ t('dialog.user.tags.new_user') }}
+
+
+ {{ t('dialog.user.tags.known_user') }}
+
+
+ {{ t('dialog.user.tags.trusted_user') }}
+
+
+ {{ t('dialog.user.tags.troll') }}
+
+
+ {{ t('dialog.user.tags.negative') }}
+
+
+ {{ t('dialog.user.tags.nuisance') }}
+
+
+ {{ t('dialog.user.tags.vrcx_staff') }}
+
+
+ {{ t('dialog.user.tags.supporter_badge') }}
+
+
+ {{ t('dialog.user.tags.team') }}
+
+
+ {{ t('dialog.user.tags.vrchat_team') }}
+
+
+ PC
+
+
+ Android
+
+
+ iOS
+
+
+ {{ userDialog.ref.$platform }}
+
+
+
+ {{ t('dialog.user.tags.18_plus_verified') }}
+
+
+ {{ t('dialog.user.tags.age_verified') }}
+
+
+
{{ userDialog.ref.$customTag }}
+
+
+
+ {{ badge.badgeName }}
+ (Hidden)
+
+
+
+
+
+
+
+
+
+ {{ badge.badgeName }}
+
+ {{ badge.badgeDescription }}
+
+
+ {{ t('dialog.user.badges.assigned') }}:
+ {{ formatDateFilter(badge.assignedAt, 'long') }}
+
+
+
+
+ {{ t('dialog.user.badges.hidden') }}
+
+
+
+ {{ t('dialog.user.badges.showcased') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
![]()
+
+
+
+
+
+
+
+