diff --git a/src/components/dialogs/AvatarDialog/AvatarDialog.vue b/src/components/dialogs/AvatarDialog/AvatarDialog.vue
index bae8e045..b0625009 100644
--- a/src/components/dialogs/AvatarDialog/AvatarDialog.vue
+++ b/src/components/dialogs/AvatarDialog/AvatarDialog.vue
@@ -222,94 +222,105 @@
style="margin-left: 5px"
@click="selectAvatarWithoutConfirmation(avatarDialog.id)">
-
-
-
-
- {{
- t('dialog.avatar.actions.refresh')
- }}
- {{
- t('dialog.avatar.actions.share')
- }}
- {{ t('dialog.avatar.actions.unblock') }}
- {{
- t('dialog.avatar.actions.block')
- }}
- {{ t('dialog.avatar.actions.select_fallback') }}
-
- {{ t('dialog.avatar.actions.make_private') }}
- {{
- t('dialog.avatar.actions.make_public')
- }}
- {{
- t('dialog.avatar.actions.rename')
- }}
- {{
- t('dialog.avatar.actions.change_description')
- }}
- {{
- t('dialog.avatar.actions.change_content_tags')
- }}
- {{
- t('dialog.avatar.actions.change_styles_author_tags')
- }}
- {{
- t('dialog.avatar.actions.change_image')
- }}
- {{ t('dialog.avatar.actions.download_package') }}
- {{ t('dialog.avatar.actions.regenerate_impostor') }}
- {{ t('dialog.avatar.actions.delete_impostor') }}
- {{
- t('dialog.avatar.actions.create_impostor')
- }}
- {{
- t('dialog.avatar.actions.delete')
- }}
-
-
-
-
+
+
+
+
+
+
+
+ {{ t('dialog.avatar.actions.refresh') }}
+
+
+
+ {{ t('dialog.avatar.actions.share') }}
+
+
+
+
+ {{ t('dialog.avatar.actions.unblock') }}
+
+
+
+ {{ t('dialog.avatar.actions.block') }}
+
+
+
+ {{ t('dialog.avatar.actions.select_fallback') }}
+
+
+
+
+
+ {{ t('dialog.avatar.actions.make_private') }}
+
+
+
+ {{ t('dialog.avatar.actions.make_public') }}
+
+
+
+ {{ t('dialog.avatar.actions.rename') }}
+
+
+
+ {{ t('dialog.avatar.actions.change_description') }}
+
+
+
+ {{ t('dialog.avatar.actions.change_content_tags') }}
+
+
+
+ {{ t('dialog.avatar.actions.change_styles_author_tags') }}
+
+
+
+ {{ t('dialog.avatar.actions.change_image') }}
+
+
+
+ {{ t('dialog.avatar.actions.download_package') }}
+
+
+
+
+ {{ t('dialog.avatar.actions.regenerate_impostor') }}
+
+
+
+ {{ t('dialog.avatar.actions.delete_impostor') }}
+
+
+
+ {{ t('dialog.avatar.actions.create_impostor') }}
+
+
+
+ {{ t('dialog.avatar.actions.delete') }}
+
+
+
+
@@ -428,24 +439,24 @@
@@ -566,7 +577,7 @@
User,
Warning
} from '@element-plus/icons-vue';
- import { computed, defineAsyncComponent, nextTick, reactive, ref, watch } from 'vue';
+ import { computed, defineAsyncComponent, nextTick, ref, watch } from 'vue';
import { ElMessageBox } from 'element-plus';
import { storeToRefs } from 'pinia';
import { toast } from 'vue-sonner';
@@ -585,6 +596,13 @@
replaceVrcPackageUrl,
timeToText
} from '../../../shared/utils';
+ import {
+ DropdownMenu,
+ DropdownMenuContent,
+ DropdownMenuItem,
+ DropdownMenuSeparator,
+ DropdownMenuTrigger
+ } from '../../ui/dropdown-menu';
import { useAvatarStore, useFavoriteStore, useGalleryStore, useGameStore, useUserStore } from '../../../stores';
import { avatarModerationRequest, avatarRequest, favoriteRequest, miscRequest } from '../../../api';
import { AppDebug } from '../../../service/appConfig.js';
diff --git a/src/components/dialogs/GroupDialog/GroupDialog.vue b/src/components/dialogs/GroupDialog/GroupDialog.vue
index 14e3c83b..be71535b 100644
--- a/src/components/dialogs/GroupDialog/GroupDialog.vue
+++ b/src/components/dialogs/GroupDialog/GroupDialog.vue
@@ -231,102 +231,108 @@
@click="joinGroup(groupDialog.id)">
-
-
-
-
-
- {{ t('dialog.group.actions.refresh') }}
-
-
- {{ t('dialog.group.actions.share') }}
-
-
-
-
- {{ t('dialog.group.actions.unsubscribe') }}
-
-
- {{ t('dialog.group.actions.subscribe') }}
-
-
- {{ t('dialog.group.actions.invite_to_group') }}
-
-
-
- {{ t('dialog.group.actions.create_post') }}
-
-
-
- {{ t('dialog.group.actions.moderation_tools') }}
-
-
-
-
- {{ t('dialog.group.actions.visibility_everyone') }}
-
-
-
- {{ t('dialog.group.actions.visibility_friends') }}
-
-
-
- {{ t('dialog.group.actions.visibility_hidden') }}
-
-
-
- {{ t('dialog.group.actions.leave') }}
-
+
+
+
+
+
+
+
+ {{ t('dialog.group.actions.refresh') }}
+
+
+
+ {{ t('dialog.group.actions.share') }}
+
+
+
+
+
+
+ {{ t('dialog.group.actions.unsubscribe') }}
+
+
+
+ {{ t('dialog.group.actions.subscribe') }}
+
+
+
+ {{ t('dialog.group.actions.invite_to_group') }}
+
+
+
+
+ {{ t('dialog.group.actions.create_post') }}
+
+
+
+ {{ t('dialog.group.actions.moderation_tools') }}
+
+
+
+
+
+
+ {{ t('dialog.group.actions.visibility_everyone') }}
+
+
+
+
+ {{ t('dialog.group.actions.visibility_friends') }}
+
+
+
+
+ {{ t('dialog.group.actions.visibility_hidden') }}
+
+
+
+
+
+ {{ t('dialog.group.actions.leave') }}
+
-
-
- {{ t('dialog.group.actions.unblock') }}
-
-
- {{ t('dialog.group.actions.block') }}
-
-
-
-
-
+
+
+
+
+
+ {{ t('dialog.group.actions.unblock') }}
+
+
+
+ {{ t('dialog.group.actions.block') }}
+
+
+
+
@@ -852,55 +858,60 @@
v-if="hasGroupPermission(groupDialog.ref, 'group-members-manage')"
style="float: right">
{{ t('dialog.group.members.sort_by') }}
-
-
- {{ t(groupDialog.memberSortOrder.name) }}
-
-
-
-
-
-
-
-
-
+
+
+
+
+ {{ t(groupDialog.memberSortOrder.name) }}
+
+
+
+
+
+
+ {{ t(item.name) }}
+
+
+
{{ t('dialog.group.members.filter') }}
-
-
- {{ t(groupDialog.memberFilter.name) }}
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ {{ t(groupDialog.memberFilter.name) }}
+
+
+
+
+
+
+ {{ t(item.name) }}
+
+
+
+ {{ role.name }}
+
+
+
+
{{ t('dialog.group.members.sort_by') }}
-
-
- {{ t(memberSortOrder.name) }}
-
-
-
-
-
-
- {{ t(item.name) }}
-
-
-
-
+
+
+
+
+ {{ t(memberSortOrder.name) }}
+
+
+
+
+
+
+ {{ t(item.name) }}
+
+
+
{{ t('dialog.group.members.filter') }}
-
-
- {{ t(memberFilter.name) }}
-
-
-
-
-
-
-
- {{ t(role.name) }}
-
-
-
-
-
+
+
+
+
+ {{ t(memberFilter.name) }}
+
+
+
+
+
+
+ {{ t(item.name) }}
+
+
+
+ {{ t(role.name) }}
+
+
+
+
-
-
-
-
- {{
- t('dialog.user.actions.refresh')
- }}
- {{
- t('dialog.user.actions.share')
- }}
-
- {{
- 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.refresh') }}
+
+
+
+ {{ t('dialog.user.actions.share') }}
+
+
+
+
+ {{ 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.send_boop') }}
+
-
-
- {{
- 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.send_boop') }}
-
-
- {{
- 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')
- }}
- Edit Note and Memo
- {{
- 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') }}
-
-
+
+
+
+ {{ 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') }}
+
+
+
+ Edit Note and Memo
+
+
+
+
+ {{ 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') }}
+
+
+
+
+
@@ -236,6 +262,13 @@
import { storeToRefs } from 'pinia';
import { useI18n } from 'vue-i18n';
+ import {
+ DropdownMenu,
+ DropdownMenuContent,
+ DropdownMenuItem,
+ DropdownMenuSeparator,
+ DropdownMenuTrigger
+ } from '../../ui/dropdown-menu';
import { useGameStore, useLocationStore, useUserStore } from '../../../stores';
import { checkCanInvite } from '../../../shared/utils';
diff --git a/src/components/dialogs/UserDialog/UserDialog.vue b/src/components/dialogs/UserDialog/UserDialog.vue
index 045bc641..1a731dd9 100644
--- a/src/components/dialogs/UserDialog/UserDialog.vue
+++ b/src/components/dialogs/UserDialog/UserDialog.vue
@@ -512,27 +512,28 @@
@@ -561,29 +562,24 @@
{{ t('dialog.user.groups.sort_by') }}
-
-
- {{ t(userDialog.mutualFriendSorting.name) }}
-
-
-
-
-
- {{ t(item.name) }}
-
-
-
-
+
+
+
+
+ {{ t(userDialog.mutualFriendSorting.name) }}
+
+
+
+
+
+
+ {{ t(item.name) }}
+
+
+
{{ t('dialog.user.groups.sort_by') }}
-
-
- {{ t(userDialog.groupSorting.name) }}
-
-
-
-
-
- {{ t(item.name) }}
-
-
-
-
+
+
+
+
+ {{ t(userDialog.groupSorting.name) }}
+
+
+
+
+
+
+ {{ t(item.name) }}
+
+
+
-
-
- {{ t('dialog.group.actions.manage_selected') }}
-
-
-
-
-
- {{ t('dialog.group.actions.visibility_everyone') }}
-
-
- {{ t('dialog.group.actions.visibility_friends') }}
-
-
- {{ t('dialog.group.actions.visibility_hidden') }}
-
-
-
- {{ t('dialog.user.groups.leave_group_tooltip') }}
-
-
-
-
+
+
+
+ {{ t('dialog.group.actions.manage_selected') }}
+
+
+
+
+
+ {{ t('dialog.group.actions.visibility_everyone') }}
+
+
+ {{ t('dialog.group.actions.visibility_friends') }}
+
+
+ {{ t('dialog.group.actions.visibility_hidden') }}
+
+
+
+
+ {{ t('dialog.user.groups.leave_group_tooltip') }}
+
+
+
({{ group.memberCount }})
-
-
- {{
- t('dialog.group.tags.visible')
- }}
- {{
- t('dialog.group.tags.friends')
- }}
- {{
- t('dialog.group.tags.hidden')
- }}
- {{ group.myMember.visibility }}
-
-
-
-
-
-
- {{
- t('dialog.group.actions.visibility_everyone')
- }}
-
-
- {{ t('dialog.group.actions.visibility_friends') }}
-
- {{ t('dialog.group.actions.visibility_hidden') }}
-
-
-
+
+
+
+ {{
+ t('dialog.group.tags.visible')
+ }}
+ {{
+ t('dialog.group.tags.friends')
+ }}
+ {{
+ t('dialog.group.tags.hidden')
+ }}
+ {{ group.myMember.visibility }}
+
+
+
+
+
+
+ {{ t('dialog.group.actions.visibility_everyone') }}
+
+
+
+ {{ t('dialog.group.actions.visibility_friends') }}
+
+
+
+ {{ t('dialog.group.actions.visibility_hidden') }}
+
+
+