diff --git a/src/components/NavMenu.vue b/src/components/NavMenu.vue
index 6073fc30..7f715bf1 100644
--- a/src/components/NavMenu.vue
+++ b/src/components/NavMenu.vue
@@ -46,7 +46,7 @@
v-for="entry in item.children"
:key="entry.index"
:index="entry.index"
- class="pl-8!"
+ class="pl-9!"
:class="{ notify: isEntryNotified(entry) }"
@click="handleSubmenuClick(entry, item.index)">
@@ -254,7 +254,6 @@
import { useRouter } from 'vue-router';
import {
- useAdvancedSettingsStore,
useAppearanceSettingsStore,
useAuthStore,
useSearchStore,
@@ -262,7 +261,6 @@
useVRCXUpdaterStore
} from '../stores';
import { THEME_CONFIG, links, navDefinitions } from '../shared/constants';
- import { getSentry } from '../plugin';
import { openExternalLink } from '../shared/utils';
import { useThemePrimaryColor } from '../composables/useElementTheme';
diff --git a/src/components/dialogs/NewInstanceDialog.vue b/src/components/dialogs/NewInstanceDialog.vue
index eeb19a26..8c210d54 100644
--- a/src/components/dialogs/NewInstanceDialog.vue
+++ b/src/components/dialogs/NewInstanceDialog.vue
@@ -15,10 +15,12 @@
variant="outline"
size="sm"
:model-value="newInstanceDialog.accessType"
- @update:model-value="(value) => {
- newInstanceDialog.accessType = value;
- buildInstance();
- }">
+ @update:model-value="
+ (value) => {
+ newInstanceDialog.accessType = value;
+ buildInstance();
+ }
+ ">
{{
t('dialog.new_instance.access_type_public')
}}
@@ -48,18 +50,24 @@
variant="outline"
size="sm"
:model-value="newInstanceDialog.groupAccessType"
- @update:model-value="(value) => {
- newInstanceDialog.groupAccessType = value;
- buildInstance();
- }">
+ @update:model-value="
+ (value) => {
+ newInstanceDialog.groupAccessType = value;
+ buildInstance();
+ }
+ ">
{{ t('dialog.new_instance.group_access_type_members') }}
{{ t('dialog.new_instance.group_access_type_plus') }}
{
- newInstanceDialog.region = value;
- buildInstance();
- }">
+ @update:model-value="
+ (value) => {
+ newInstanceDialog.region = value;
+ buildInstance();
+ }
+ ">
{{ t('dialog.new_instance.region_usw') }}
{{ t('dialog.new_instance.region_use') }}
{{ t('dialog.new_instance.region_eu') }}
@@ -198,10 +208,12 @@
variant="outline"
size="sm"
:model-value="newInstanceDialog.accessType"
- @update:model-value="(value) => {
- newInstanceDialog.accessType = value;
- buildLegacyInstance();
- }">
+ @update:model-value="
+ (value) => {
+ newInstanceDialog.accessType = value;
+ buildLegacyInstance();
+ }
+ ">
{{
t('dialog.new_instance.access_type_public')
}}
@@ -231,10 +243,12 @@
variant="outline"
size="sm"
:model-value="newInstanceDialog.groupAccessType"
- @update:model-value="(value) => {
- newInstanceDialog.groupAccessType = value;
- buildLegacyInstance();
- }">
+ @update:model-value="
+ (value) => {
+ newInstanceDialog.groupAccessType = value;
+ buildLegacyInstance();
+ }
+ ">
{{
t('dialog.new_instance.group_access_type_members')
}}
@@ -253,10 +267,12 @@
variant="outline"
size="sm"
:model-value="newInstanceDialog.region"
- @update:model-value="(value) => {
- newInstanceDialog.region = value;
- buildLegacyInstance();
- }">
+ @update:model-value="
+ (value) => {
+ newInstanceDialog.region = value;
+ buildLegacyInstance();
+ }
+ ">
{{ t('dialog.new_instance.region_usw') }}
{{ t('dialog.new_instance.region_use') }}
{{ t('dialog.new_instance.region_eu') }}
@@ -524,8 +540,6 @@
import { toast } from 'vue-sonner';
import { useI18n } from 'vue-i18n';
- import { ToggleGroup, ToggleGroupItem } from '../ui/toggle-group';
-
import {
copyToClipboard,
getLaunchURL,
@@ -545,6 +559,7 @@
useUserStore
} from '../../stores';
import { groupRequest, instanceRequest, worldRequest } from '../../api';
+ import { ToggleGroup, ToggleGroupItem } from '../ui/toggle-group';
import { getNextDialogIndex } from '../../shared/utils/base/ui';
import InviteDialog from './InviteDialog/InviteDialog.vue';
diff --git a/src/views/Favorites/FavoritesAvatar.vue b/src/views/Favorites/FavoritesAvatar.vue
index 7d4c2419..e96c3a21 100644
--- a/src/views/Favorites/FavoritesAvatar.vue
+++ b/src/views/Favorites/FavoritesAvatar.vue
@@ -17,45 +17,44 @@
class="favorites-toolbar__search"
:placeholder="t('view.favorite.avatars.search')"
@input="searchAvatarFavorites" />
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ t('view.favorite.import') }}
-
-
- {{ t('view.favorite.export') }}
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ t('view.favorite.import') }}
+
+
+ {{ t('view.favorite.export') }}
+
+
+
@@ -487,6 +486,13 @@
import { toast } from 'vue-sonner';
import { useI18n } from 'vue-i18n';
+ import {
+ DropdownMenu,
+ DropdownMenuContent,
+ DropdownMenuItem,
+ DropdownMenuSeparator,
+ DropdownMenuTrigger
+ } from '../../components/ui/dropdown-menu';
import { useAppearanceSettingsStore, useAvatarStore, useFavoriteStore, useUserStore } from '../../stores';
import { Popover, PopoverContent, PopoverTrigger } from '../../components/ui/popover';
import { avatarRequest, favoriteRequest } from '../../api';
@@ -597,7 +603,7 @@
const avatarEditMode = ref(false);
const selectedGroup = ref(null);
const activeGroupMenu = ref(null);
- const avatarToolbarMenuRef = ref();
+ const avatarToolbarMenuOpen = ref(false);
const isCreatingLocalGroup = ref(false);
const newLocalGroupName = ref('');
const newLocalGroupInput = ref(null);
@@ -632,7 +638,7 @@
const historyGroupMenuKey = 'history';
const closeAvatarToolbarMenu = () => {
- avatarToolbarMenuRef.value?.handleClose?.();
+ avatarToolbarMenuOpen.value = false;
};
function handleAvatarImportClick() {
diff --git a/src/views/Favorites/FavoritesFriend.vue b/src/views/Favorites/FavoritesFriend.vue
index 6bec77cc..88ac387b 100644
--- a/src/views/Favorites/FavoritesFriend.vue
+++ b/src/views/Favorites/FavoritesFriend.vue
@@ -17,47 +17,44 @@
class="favorites-toolbar__search"
:placeholder="t('view.favorite.worlds.search')"
@input="searchFriendFavorites" />
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ t('view.favorite.import') }}
-
-
- {{ t('view.favorite.export') }}
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ t('view.favorite.import') }}
+
+
+ {{ t('view.favorite.export') }}
+
+
+
@@ -279,6 +276,13 @@
import { toast } from 'vue-sonner';
import { useI18n } from 'vue-i18n';
+ import {
+ DropdownMenu,
+ DropdownMenuContent,
+ DropdownMenuItem,
+ DropdownMenuSeparator,
+ DropdownMenuTrigger
+ } from '../../components/ui/dropdown-menu';
import { Popover, PopoverContent, PopoverTrigger } from '../../components/ui/popover';
import { useAppearanceSettingsStore, useFavoriteStore, useUserStore } from '../../stores';
import { Badge } from '../../components/ui/badge';
@@ -363,7 +367,7 @@
const friendEditMode = ref(false);
const selectedGroup = ref(null);
const activeGroupMenu = ref(null);
- const friendToolbarMenuRef = ref();
+ const friendToolbarMenuOpen = ref(false);
const sortFav = computed({
get() {
@@ -380,7 +384,7 @@
const isRemoteGroupSelected = computed(() => selectedGroup.value?.type === 'remote');
const closeFriendToolbarMenu = () => {
- friendToolbarMenuRef.value?.handleClose?.();
+ friendToolbarMenuOpen.value = false;
};
function handleFriendImportClick() {
diff --git a/src/views/Favorites/FavoritesWorld.vue b/src/views/Favorites/FavoritesWorld.vue
index 3bfe67d4..62609694 100644
--- a/src/views/Favorites/FavoritesWorld.vue
+++ b/src/views/Favorites/FavoritesWorld.vue
@@ -17,47 +17,44 @@
class="favorites-toolbar__search"
:placeholder="t('view.favorite.worlds.search')"
@input="searchWorldFavorites" />
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ t('view.favorite.import') }}
-
-
- {{ t('view.favorite.export') }}
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ t('view.favorite.import') }}
+
+
+ {{ t('view.favorite.export') }}
+
+
+
@@ -406,6 +403,13 @@
import { toast } from 'vue-sonner';
import { useI18n } from 'vue-i18n';
+ import {
+ DropdownMenu,
+ DropdownMenuContent,
+ DropdownMenuItem,
+ DropdownMenuSeparator,
+ DropdownMenuTrigger
+ } from '../../components/ui/dropdown-menu';
import { Popover, PopoverContent, PopoverTrigger } from '../../components/ui/popover';
import { useAppearanceSettingsStore, useFavoriteStore, useWorldStore } from '../../stores';
import { favoriteRequest, worldRequest } from '../../api';
@@ -522,7 +526,7 @@
const worldEditMode = ref(false);
const activeGroupMenu = ref(null);
const localFavoritesScrollbarRef = ref(null);
- const worldToolbarMenuRef = ref();
+ const worldToolbarMenuOpen = ref(false);
const localFavoritesLoadingMore = ref(false);
const hasWorldSelection = computed(() => selectedFavoriteWorlds.value.length > 0);
const hasSearchInput = computed(() => worldFavoriteSearch.value.trim().length > 0);
@@ -533,7 +537,7 @@
const localGroupMenuKey = (key) => `local:${key}`;
const closeWorldToolbarMenu = () => {
- worldToolbarMenuRef.value?.handleClose?.();
+ worldToolbarMenuOpen.value = false;
};
function handleWorldImportClick() {
diff --git a/src/views/Favorites/components/FavoritesMoveDropdown.vue b/src/views/Favorites/components/FavoritesMoveDropdown.vue
index d1095e71..f0cf2d34 100644
--- a/src/views/Favorites/components/FavoritesMoveDropdown.vue
+++ b/src/views/Favorites/components/FavoritesMoveDropdown.vue
@@ -1,40 +1,46 @@
-
-
+
+
-
-
+
+
{{ t(tooltipContent) }}
-
-
-
- {{ groupAPI.displayName }} ({{ groupAPI.count }} / {{ groupAPI.capacity }})
-
-
-
-
-
+
+
+ {{ groupAPI.displayName }} ({{ groupAPI.count }} / {{ groupAPI.capacity }})
+
+
+