import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
import { Back, Delete, Refresh, Right } from '@element-plus/icons-vue';
+ import { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group';
import { Button } from '@/components/ui/button';
import { ButtonGroup } from '@/components/ui/button-group';
import { ref } from 'vue';
@@ -368,6 +399,21 @@
const searchWorldCategoryIndex = ref(null);
const searchWorldResults = ref([]);
+ function handleSearchAvatarFilterChange(value) {
+ searchAvatarFilter.value = value;
+ searchAvatar();
+ }
+
+ function handleSearchAvatarFilterRemoteChange(value) {
+ searchAvatarFilterRemote.value = value;
+ searchAvatar();
+ }
+
+ function handleSearchAvatarSortChange(value) {
+ searchAvatarSort.value = value;
+ searchAvatar();
+ }
+
const searchAvatarFilter = ref('');
const searchAvatarSort = ref('');
const searchAvatarFilterRemote = ref('');
diff --git a/src/views/Settings/components/Tabs/AppearanceTab.vue b/src/views/Settings/components/Tabs/AppearanceTab.vue
index 318737d3..a140e201 100644
--- a/src/views/Settings/components/Tabs/AppearanceTab.vue
+++ b/src/views/Settings/components/Tabs/AppearanceTab.vue
@@ -72,25 +72,45 @@
@change="setIsAgeGatedInstancesVisible" />
{{ t('view.settings.appearance.appearance.sort_favorite_by') }}
-
- {{
- t('view.settings.appearance.appearance.sort_favorite_by_name')
- }}
- {{
- t('view.settings.appearance.appearance.sort_favorite_by_date')
- }}
-
+
+
+
+
+
+
+
+
+
+
{{ t('view.settings.appearance.appearance.sort_instance_users_by') }}
-
- {{
- t('view.settings.appearance.appearance.sort_instance_users_by_time')
- }}
- {{
- t('view.settings.appearance.appearance.sort_instance_users_by_alphabet')
- }}
-
+
+
+
+
+
+
+
+
+
+
@@ -154,15 +174,24 @@
{{ t('view.settings.appearance.timedate.time_format') }}
-
- {{ t('view.settings.appearance.timedate.time_format_12') }}
- {{ t('view.settings.appearance.timedate.time_format_24') }}
-
+
+
+
+
+
+
+
+
+
+
tablePageSizes.value.map(String),
set: (values) => {
diff --git a/src/views/Settings/components/Tabs/GeneralTab.vue b/src/views/Settings/components/Tabs/GeneralTab.vue
index 6a5e0b2f..ae0eecf9 100644
--- a/src/views/Settings/components/Tabs/GeneralTab.vue
+++ b/src/views/Settings/components/Tabs/GeneralTab.vue
@@ -217,13 +217,25 @@
{{ t('view.settings.general.automation.alone_condition') }}
-
- {{ t('view.settings.general.automation.alone') }}
- {{ t('view.settings.general.automation.no_friends') }}
-
+ class="gap-2"
+ style="margin-top: 8px"
+ @update:modelValue="handleAutoStateChangeNoFriendsRadio">
+
+
+
+
+
+
+
+
+
diff --git a/src/views/Settings/components/WristOverlaySettings.vue b/src/views/Settings/components/WristOverlaySettings.vue
index e964ac33..d9394865 100644
--- a/src/views/Settings/components/WristOverlaySettings.vue
+++ b/src/views/Settings/components/WristOverlaySettings.vue
@@ -43,33 +43,43 @@
" />
{{ t('view.settings.wrist_overlay.steamvr_wrist_overlay.start_overlay_with') }}
-
- {{ 'VRChat' }}
- {{ 'SteamVR' }}
-
+ class="gap-2"
+ style="margin-top: 8px"
+ @update:modelValue="handleOpenVRAlwaysRadio">
+
+
+
+
+
+
+
+
+
{{ t('view.settings.wrist_overlay.steamvr_wrist_overlay.overlay_button') }}
-
- {{
- t('view.settings.wrist_overlay.steamvr_wrist_overlay.overlay_button_grip')
- }}
- {{
- t('view.settings.wrist_overlay.steamvr_wrist_overlay.overlay_button_menu')
- }}
-
+ class="gap-2"
+ style="margin-top: 8px"
+ @update:modelValue="handleOverlayButtonRadio">
+
+
+
+
+
+
+
+
+
{{ t('view.settings.wrist_overlay.steamvr_wrist_overlay.display_overlay_on') }}
@@ -151,6 +161,7 @@
import { useI18n } from 'vue-i18n';
import { useNotificationsSettingsStore, useVrStore, useWristOverlaySettingsStore } from '../../../stores';
+ import { RadioGroup, RadioGroupItem } from '../../../components/ui/radio-group';
import { ToggleGroup, ToggleGroupItem } from '../../../components/ui/toggle-group';
import SimpleSwitch from './SimpleSwitch.vue';
@@ -194,4 +205,20 @@
} = wristOverlaySettingsStore;
const { saveOpenVROption } = useVrStore();
+
+ function handleOpenVRAlwaysRadio(value) {
+ const nextValue = value === 'true';
+ if (nextValue !== openVRAlways.value) {
+ setOpenVRAlways();
+ saveOpenVROption();
+ }
+ }
+
+ function handleOverlayButtonRadio(value) {
+ const nextValue = value === 'true';
+ if (nextValue !== overlaybutton.value) {
+ setOverlaybutton();
+ saveOpenVROption();
+ }
+ }
diff --git a/src/views/Settings/dialogs/NotificationPositionDialog.vue b/src/views/Settings/dialogs/NotificationPositionDialog.vue
index c677bce1..a208ad1e 100644
--- a/src/views/Settings/dialogs/NotificationPositionDialog.vue
+++ b/src/views/Settings/dialogs/NotificationPositionDialog.vue
@@ -8,32 +8,73 @@
{{ t('dialog.notification_position.description') }}
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -49,6 +90,7 @@
import { storeToRefs } from 'pinia';
import { useI18n } from 'vue-i18n';
+ import { RadioGroup, RadioGroupItem } from '../../../components/ui/radio-group';
import { useNotificationsSettingsStore } from '../../../stores';
const { t } = useI18n();