mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-19 14:53:50 +02:00
style
This commit is contained in:
@@ -421,7 +421,7 @@
|
|||||||
<Button
|
<Button
|
||||||
class="rounded-full text-xs"
|
class="rounded-full text-xs"
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
@click.stop
|
@click.stop
|
||||||
><Copy class="h-4 w-4" />
|
><Copy class="h-4 w-4" />
|
||||||
</Button>
|
</Button>
|
||||||
@@ -498,14 +498,14 @@
|
|||||||
<Button
|
<Button
|
||||||
class="rounded-full mr-2"
|
class="rounded-full mr-2"
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
@click="refreshAvatarDialogTreeData()">
|
@click="refreshAvatarDialogTreeData()">
|
||||||
<RefreshCw />
|
<RefreshCw />
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
class="rounded-full"
|
class="rounded-full"
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
@click="downloadAndSaveJson(avatarDialog.id, avatarDialog.ref)">
|
@click="downloadAndSaveJson(avatarDialog.id, avatarDialog.ref)">
|
||||||
<Download />
|
<Download />
|
||||||
</Button>
|
</Button>
|
||||||
|
|||||||
@@ -627,7 +627,7 @@
|
|||||||
<Button
|
<Button
|
||||||
class="rounded-full ml-1 text-xs"
|
class="rounded-full ml-1 text-xs"
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
@click="copyToClipboard(groupDialog.ref.$url)"
|
@click="copyToClipboard(groupDialog.ref.$url)"
|
||||||
><Copy class="h-4 w-4" />
|
><Copy class="h-4 w-4" />
|
||||||
</Button> </TooltipWrapper
|
</Button> </TooltipWrapper
|
||||||
@@ -643,7 +643,7 @@
|
|||||||
<Button
|
<Button
|
||||||
class="rounded-full ml-1 text-xs"
|
class="rounded-full ml-1 text-xs"
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
@click="copyToClipboard(groupDialog.id)"
|
@click="copyToClipboard(groupDialog.id)"
|
||||||
><Copy class="h-4 w-4" />
|
><Copy class="h-4 w-4" />
|
||||||
</Button> </TooltipWrapper
|
</Button> </TooltipWrapper
|
||||||
@@ -840,7 +840,7 @@
|
|||||||
<div style="margin-top: 10px">
|
<div style="margin-top: 10px">
|
||||||
<Button
|
<Button
|
||||||
class="rounded-full h-6 w-6"
|
class="rounded-full h-6 w-6"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
:loading="isGroupMembersLoading"
|
:loading="isGroupMembersLoading"
|
||||||
circle
|
circle
|
||||||
@@ -850,7 +850,7 @@
|
|||||||
<Button
|
<Button
|
||||||
class="rounded-full h-6 w-6 ml-2"
|
class="rounded-full h-6 w-6 ml-2"
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
style="margin-left: 5px"
|
style="margin-left: 5px"
|
||||||
@click="downloadAndSaveJson(`${groupDialog.id}_members`, groupDialog.members)">
|
@click="downloadAndSaveJson(`${groupDialog.id}_members`, groupDialog.members)">
|
||||||
<Download class="h-4 w-4" />
|
<Download class="h-4 w-4" />
|
||||||
@@ -1044,7 +1044,7 @@
|
|||||||
<template #Photos>
|
<template #Photos>
|
||||||
<Button
|
<Button
|
||||||
class="rounded-full"
|
class="rounded-full"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
:disabled="isGroupGalleryLoading"
|
:disabled="isGroupGalleryLoading"
|
||||||
@click="getGroupGalleries">
|
@click="getGroupGalleries">
|
||||||
@@ -1098,14 +1098,14 @@
|
|||||||
<Button
|
<Button
|
||||||
class="rounded-full mr-2"
|
class="rounded-full mr-2"
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
@click="refreshGroupDialogTreeData()">
|
@click="refreshGroupDialogTreeData()">
|
||||||
<RefreshCw />
|
<RefreshCw />
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
class="rounded-full"
|
class="rounded-full"
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
@click="downloadAndSaveJson(groupDialog.id, groupDialog.ref)">
|
@click="downloadAndSaveJson(groupDialog.id, groupDialog.ref)">
|
||||||
<Download />
|
<Download />
|
||||||
</Button>
|
</Button>
|
||||||
|
|||||||
@@ -432,7 +432,7 @@
|
|||||||
<Button
|
<Button
|
||||||
class="rounded-full ml-1 text-xs"
|
class="rounded-full ml-1 text-xs"
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
@click.stop="resetHome()"
|
@click.stop="resetHome()"
|
||||||
><Trash2 class="h-4 w-4" />
|
><Trash2 class="h-4 w-4" />
|
||||||
</Button>
|
</Button>
|
||||||
@@ -450,7 +450,7 @@
|
|||||||
<Button
|
<Button
|
||||||
class="rounded-full ml-1 text-xs"
|
class="rounded-full ml-1 text-xs"
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
@click.stop
|
@click.stop
|
||||||
><Copy class="h-4 w-4" />
|
><Copy class="h-4 w-4" />
|
||||||
</Button>
|
</Button>
|
||||||
@@ -479,7 +479,7 @@
|
|||||||
<div style="display: flex; align-items: center">
|
<div style="display: flex; align-items: center">
|
||||||
<Button
|
<Button
|
||||||
class="rounded-full"
|
class="rounded-full"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
:disabled="userDialog.isMutualFriendsLoading"
|
:disabled="userDialog.isMutualFriendsLoading"
|
||||||
@click="getUserMutualFriends(userDialog.id)">
|
@click="getUserMutualFriends(userDialog.id)">
|
||||||
@@ -545,7 +545,7 @@
|
|||||||
<div style="display: flex; align-items: center">
|
<div style="display: flex; align-items: center">
|
||||||
<Button
|
<Button
|
||||||
class="rounded-full"
|
class="rounded-full"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
:disabled="userDialog.isGroupsLoading"
|
:disabled="userDialog.isGroupsLoading"
|
||||||
@click="getUserGroups(userDialog.id)">
|
@click="getUserGroups(userDialog.id)">
|
||||||
@@ -667,7 +667,7 @@
|
|||||||
<div style="margin-right: 3px; margin-left: 5px" @click.stop>
|
<div style="margin-right: 3px; margin-left: 5px" @click.stop>
|
||||||
<Button
|
<Button
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
style="
|
style="
|
||||||
display: block;
|
display: block;
|
||||||
padding: 7px;
|
padding: 7px;
|
||||||
@@ -680,7 +680,7 @@
|
|||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
style="display: block; padding: 7px; font-size: 9px; margin-left: 0"
|
style="display: block; padding: 7px; font-size: 9px; margin-left: 0"
|
||||||
@click="moveGroupBottom(group.id)">
|
@click="moveGroupBottom(group.id)">
|
||||||
<DownloadIcon />
|
<DownloadIcon />
|
||||||
@@ -932,7 +932,7 @@
|
|||||||
<div style="display: flex; align-items: center">
|
<div style="display: flex; align-items: center">
|
||||||
<Button
|
<Button
|
||||||
class="rounded-full"
|
class="rounded-full"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
:disabled="userDialog.isWorldsLoading"
|
:disabled="userDialog.isWorldsLoading"
|
||||||
@click="refreshUserDialogWorlds()">
|
@click="refreshUserDialogWorlds()">
|
||||||
@@ -1082,7 +1082,7 @@
|
|||||||
<Button
|
<Button
|
||||||
v-if="userDialog.ref.id === currentUser.id"
|
v-if="userDialog.ref.id === currentUser.id"
|
||||||
class="rounded-full"
|
class="rounded-full"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
:disabled="userDialog.isAvatarsLoading"
|
:disabled="userDialog.isAvatarsLoading"
|
||||||
@click="refreshUserDialogAvatars()">
|
@click="refreshUserDialogAvatars()">
|
||||||
@@ -1092,7 +1092,7 @@
|
|||||||
<Button
|
<Button
|
||||||
v-else
|
v-else
|
||||||
class="rounded-full"
|
class="rounded-full"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
:disabled="userDialog.isAvatarsLoading"
|
:disabled="userDialog.isAvatarsLoading"
|
||||||
@click="setUserDialogAvatarsRemote(userDialog.id)">
|
@click="setUserDialogAvatarsRemote(userDialog.id)">
|
||||||
@@ -1188,13 +1188,13 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template #JSON>
|
<template #JSON>
|
||||||
<Button class="rounded-full mr-2" size="icon-sm" variant="outline" @click="refreshUserDialogTreeData()">
|
<Button class="rounded-full mr-2" size="icon-sm" variant="ghost" @click="refreshUserDialogTreeData()">
|
||||||
<RefreshCw />
|
<RefreshCw />
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
class="rounded-full"
|
class="rounded-full"
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
@click="downloadAndSaveJson(userDialog.id, userDialog.ref)">
|
@click="downloadAndSaveJson(userDialog.id, userDialog.ref)">
|
||||||
<Download />
|
<Download />
|
||||||
</Button>
|
</Button>
|
||||||
|
|||||||
@@ -455,7 +455,7 @@
|
|||||||
<Button
|
<Button
|
||||||
class="rounded-full text-xs"
|
class="rounded-full text-xs"
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
@click.stop
|
@click.stop
|
||||||
><Copy class="h-4 w-4" />
|
><Copy class="h-4 w-4" />
|
||||||
</Button>
|
</Button>
|
||||||
@@ -704,14 +704,14 @@
|
|||||||
<Button
|
<Button
|
||||||
class="rounded-full mr-2"
|
class="rounded-full mr-2"
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
@click="refreshWorldDialogTreeData()">
|
@click="refreshWorldDialogTreeData()">
|
||||||
<RefreshCw />
|
<RefreshCw />
|
||||||
</Button>
|
</Button>
|
||||||
<Button
|
<Button
|
||||||
class="rounded-full"
|
class="rounded-full"
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
@click="downloadAndSaveJson(worldDialog.id, worldDialog.ref)">
|
@click="downloadAndSaveJson(worldDialog.id, worldDialog.ref)">
|
||||||
<Download />
|
<Download />
|
||||||
</Button>
|
</Button>
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
});
|
});
|
||||||
|
|
||||||
function onUpdateModelValue(value) {
|
function onUpdateModelValue(value) {
|
||||||
if (!value || (Array.isArray(value) && !value.length)) {
|
if (props.type === 'single' && !value) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
emits('update:modelValue', value);
|
emits('update:modelValue', value);
|
||||||
|
|||||||
@@ -94,6 +94,11 @@
|
|||||||
},
|
},
|
||||||
"friends_locations": {
|
"friends_locations": {
|
||||||
"online_friends": "Online Friends",
|
"online_friends": "Online Friends",
|
||||||
|
"online": "Online",
|
||||||
|
"favorite": "Favorites",
|
||||||
|
"same_instance": "Same instance",
|
||||||
|
"active": "Active",
|
||||||
|
"offline": "Offline",
|
||||||
"spacing": "Spacing",
|
"spacing": "Spacing",
|
||||||
"scale": "Scale",
|
"scale": "Scale",
|
||||||
"separate_same_instance_friends": "Separate Same Instance Friends",
|
"separate_same_instance_friends": "Separate Same Instance Friends",
|
||||||
|
|||||||
@@ -94,6 +94,11 @@
|
|||||||
},
|
},
|
||||||
"friends_locations": {
|
"friends_locations": {
|
||||||
"online_friends": "オンラインのフレンド",
|
"online_friends": "オンラインのフレンド",
|
||||||
|
"online": "オンライン",
|
||||||
|
"favorite": "お気に入り",
|
||||||
|
"same_instance": "同じインスタンス",
|
||||||
|
"active": "アクティブ",
|
||||||
|
"offline": "オフライン",
|
||||||
"spacing": "表示間隔",
|
"spacing": "表示間隔",
|
||||||
"scale": "サイズ",
|
"scale": "サイズ",
|
||||||
"separate_same_instance_friends": "同じインスタンスのフレンドを分けて表示",
|
"separate_same_instance_friends": "同じインスタンスのフレンドを分けて表示",
|
||||||
|
|||||||
@@ -94,6 +94,11 @@
|
|||||||
},
|
},
|
||||||
"friends_locations": {
|
"friends_locations": {
|
||||||
"online_friends": "在线好友",
|
"online_friends": "在线好友",
|
||||||
|
"online": "在线",
|
||||||
|
"favorite": "星标好友",
|
||||||
|
"same_instance": "同一房间",
|
||||||
|
"active": "活跃中(仅登录网页端)",
|
||||||
|
"offline": "离线",
|
||||||
"spacing": "卡片间距",
|
"spacing": "卡片间距",
|
||||||
"scale": "缩放",
|
"scale": "缩放",
|
||||||
"separate_same_instance_friends": "分开显示处于同一房间的好友",
|
"separate_same_instance_friends": "分开显示处于同一房间的好友",
|
||||||
|
|||||||
@@ -91,6 +91,11 @@
|
|||||||
},
|
},
|
||||||
"friends_locations": {
|
"friends_locations": {
|
||||||
"online_friends": "在線好友",
|
"online_friends": "在線好友",
|
||||||
|
"online": "上線",
|
||||||
|
"favorite": "收藏",
|
||||||
|
"same_instance": "Same Instance",
|
||||||
|
"active": "活躍",
|
||||||
|
"offline": "離線",
|
||||||
"spacing": "間距",
|
"spacing": "間距",
|
||||||
"scale": "縮放",
|
"scale": "縮放",
|
||||||
"separate_same_instance_friends": "分開顯示同房好友",
|
"separate_same_instance_friends": "分開顯示同房好友",
|
||||||
|
|||||||
@@ -89,7 +89,7 @@
|
|||||||
<ButtonGroup class="mr-2">
|
<ButtonGroup class="mr-2">
|
||||||
<TooltipWrapper :content="t('view.charts.instance_activity.previous_day')" side="top">
|
<TooltipWrapper :content="t('view.charts.instance_activity.previous_day')" side="top">
|
||||||
<Button
|
<Button
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
:disabled="isPrevDayBtnDisabled"
|
:disabled="isPrevDayBtnDisabled"
|
||||||
@click="changeSelectedDateFromBtn(false)">
|
@click="changeSelectedDateFromBtn(false)">
|
||||||
@@ -98,7 +98,7 @@
|
|||||||
</TooltipWrapper>
|
</TooltipWrapper>
|
||||||
<TooltipWrapper :content="t('view.charts.instance_activity.next_day')" side="top">
|
<TooltipWrapper :content="t('view.charts.instance_activity.next_day')" side="top">
|
||||||
<Button
|
<Button
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
:disabled="isNextDayBtnDisabled"
|
:disabled="isNextDayBtnDisabled"
|
||||||
@click="changeSelectedDateFromBtn(true)">
|
@click="changeSelectedDateFromBtn(true)">
|
||||||
|
|||||||
@@ -95,7 +95,7 @@
|
|||||||
<TooltipWrapper side="bottom" :content="t('view.favorite.refresh_favorites_tooltip')">
|
<TooltipWrapper side="bottom" :content="t('view.favorite.refresh_favorites_tooltip')">
|
||||||
<Button
|
<Button
|
||||||
class="rounded-full"
|
class="rounded-full"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
:disabled="isFavoriteLoading"
|
:disabled="isFavoriteLoading"
|
||||||
@click.stop="handleRefreshFavorites">
|
@click.stop="handleRefreshFavorites">
|
||||||
@@ -203,7 +203,7 @@
|
|||||||
<Button
|
<Button
|
||||||
class="rounded-full"
|
class="rounded-full"
|
||||||
size="icon"
|
size="icon"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
@click.stop="refreshLocalAvatarFavorites"
|
@click.stop="refreshLocalAvatarFavorites"
|
||||||
><RefreshCcw
|
><RefreshCcw
|
||||||
/></Button>
|
/></Button>
|
||||||
|
|||||||
@@ -97,7 +97,7 @@
|
|||||||
<TooltipWrapper side="bottom" :content="t('view.favorite.refresh_favorites_tooltip')">
|
<TooltipWrapper side="bottom" :content="t('view.favorite.refresh_favorites_tooltip')">
|
||||||
<Button
|
<Button
|
||||||
class="rounded-full"
|
class="rounded-full"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
:disabled="isFavoriteLoading"
|
:disabled="isFavoriteLoading"
|
||||||
@click.stop="handleRefreshFavorites">
|
@click.stop="handleRefreshFavorites">
|
||||||
|
|||||||
@@ -97,7 +97,7 @@
|
|||||||
<TooltipWrapper side="bottom" :content="t('view.favorite.refresh_favorites_tooltip')">
|
<TooltipWrapper side="bottom" :content="t('view.favorite.refresh_favorites_tooltip')">
|
||||||
<Button
|
<Button
|
||||||
class="rounded-full"
|
class="rounded-full"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
:disabled="isFavoriteLoading"
|
:disabled="isFavoriteLoading"
|
||||||
@click.stop="handleRefreshFavorites">
|
@click.stop="handleRefreshFavorites">
|
||||||
@@ -204,7 +204,7 @@
|
|||||||
<Button
|
<Button
|
||||||
class="rounded-full"
|
class="rounded-full"
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
v-if="!refreshingLocalFavorites"
|
v-if="!refreshingLocalFavorites"
|
||||||
@click.stop="refreshLocalWorldFavorites"
|
@click.stop="refreshLocalWorldFavorites"
|
||||||
><RefreshCcw
|
><RefreshCcw
|
||||||
|
|||||||
@@ -16,24 +16,18 @@
|
|||||||
</span>
|
</span>
|
||||||
</TooltipWrapper>
|
</TooltipWrapper>
|
||||||
</div>
|
</div>
|
||||||
<Select
|
<ToggleGroup
|
||||||
multiple
|
type="multiple"
|
||||||
|
variant="outline"
|
||||||
|
size="sm"
|
||||||
:model-value="Array.isArray(feedTable.filter) ? feedTable.filter : []"
|
:model-value="Array.isArray(feedTable.filter) ? feedTable.filter : []"
|
||||||
@update:modelValue="handleFeedFilterChange">
|
@update:model-value="handleFeedFilterChange"
|
||||||
<SelectTrigger class="w-full" style="flex: 1">
|
class="w-full justify-start"
|
||||||
<SelectValue :placeholder="t('view.feed.filter_placeholder')" />
|
style="flex: 1">
|
||||||
</SelectTrigger>
|
<ToggleGroupItem v-for="type in feedFilterTypes" :key="type" :value="type">
|
||||||
<SelectContent>
|
{{ t('view.feed.filters.' + type) }}
|
||||||
<SelectGroup>
|
</ToggleGroupItem>
|
||||||
<SelectItem
|
</ToggleGroup>
|
||||||
v-for="type in ['GPS', 'Online', 'Offline', 'Status', 'Avatar', 'Bio']"
|
|
||||||
:key="type"
|
|
||||||
:value="type">
|
|
||||||
{{ t('view.feed.filters.' + type) }}
|
|
||||||
</SelectItem>
|
|
||||||
</SelectGroup>
|
|
||||||
</SelectContent>
|
|
||||||
</Select>
|
|
||||||
<InputGroupField
|
<InputGroupField
|
||||||
v-model="feedTable.search"
|
v-model="feedTable.search"
|
||||||
:placeholder="t('view.feed.search_placeholder')"
|
:placeholder="t('view.feed.search_placeholder')"
|
||||||
@@ -52,15 +46,8 @@
|
|||||||
import { storeToRefs } from 'pinia';
|
import { storeToRefs } from 'pinia';
|
||||||
import { useI18n } from 'vue-i18n';
|
import { useI18n } from 'vue-i18n';
|
||||||
|
|
||||||
import {
|
|
||||||
Select,
|
|
||||||
SelectContent,
|
|
||||||
SelectGroup,
|
|
||||||
SelectItem,
|
|
||||||
SelectTrigger,
|
|
||||||
SelectValue
|
|
||||||
} from '../../components/ui/select';
|
|
||||||
import { useAppearanceSettingsStore, useFeedStore, useVrcxStore } from '../../stores';
|
import { useAppearanceSettingsStore, useFeedStore, useVrcxStore } from '../../stores';
|
||||||
|
import { ToggleGroup, ToggleGroupItem } from '../../components/ui/toggle-group';
|
||||||
import { DataTableLayout } from '../../components/ui/data-table';
|
import { DataTableLayout } from '../../components/ui/data-table';
|
||||||
import { InputGroupField } from '../../components/ui/input-group';
|
import { InputGroupField } from '../../components/ui/input-group';
|
||||||
import { Switch } from '../../components/ui/switch';
|
import { Switch } from '../../components/ui/switch';
|
||||||
@@ -74,6 +61,7 @@
|
|||||||
const vrcxStore = useVrcxStore();
|
const vrcxStore = useVrcxStore();
|
||||||
|
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
const feedFilterTypes = ['GPS', 'Online', 'Offline', 'Status', 'Avatar', 'Bio'];
|
||||||
|
|
||||||
const feedRef = ref(null);
|
const feedRef = ref(null);
|
||||||
|
|
||||||
@@ -121,7 +109,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
function handleFeedFilterChange(value) {
|
function handleFeedFilterChange(value) {
|
||||||
feedTable.value.filter = Array.isArray(value) ? value : [];
|
const selected = Array.isArray(value) ? value : [];
|
||||||
|
feedTable.value.filter = selected.length === feedFilterTypes.length ? [] : selected;
|
||||||
feedTableLookup();
|
feedTableLookup();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -150,11 +150,11 @@
|
|||||||
storeToRefs(friendStore);
|
storeToRefs(friendStore);
|
||||||
|
|
||||||
const SEGMENTED_BASE_OPTIONS = [
|
const SEGMENTED_BASE_OPTIONS = [
|
||||||
{ label: t('side_panel.online'), value: 'online' },
|
{ label: t('view.friends_locations.online'), value: 'online' },
|
||||||
{ label: t('side_panel.favorite'), value: 'favorite' },
|
{ label: t('view.friends_locations.favorite'), value: 'favorite' },
|
||||||
{ label: t('side_panel.same_instance'), value: 'same-instance' },
|
{ label: t('view.friends_locations.same_instance'), value: 'same-instance' },
|
||||||
{ label: t('side_panel.active'), value: 'active' },
|
{ label: t('view.friends_locations.active'), value: 'active' },
|
||||||
{ label: t('side_panel.offline'), value: 'offline' }
|
{ label: t('view.friends_locations.offline'), value: 'offline' }
|
||||||
];
|
];
|
||||||
|
|
||||||
const segmentedOptions = computed(() =>
|
const segmentedOptions = computed(() =>
|
||||||
|
|||||||
@@ -164,7 +164,7 @@
|
|||||||
<TooltipWrapper side="bottom" :content="t('view.search.avatar.refresh_tooltip')">
|
<TooltipWrapper side="bottom" :content="t('view.search.avatar.refresh_tooltip')">
|
||||||
<Button
|
<Button
|
||||||
class="rounded-full ml-1"
|
class="rounded-full ml-1"
|
||||||
variant="outline"
|
variant="ghost"
|
||||||
size="icon-sm"
|
size="icon-sm"
|
||||||
:disabled="userDialog.isAvatarsLoading"
|
:disabled="userDialog.isAvatarsLoading"
|
||||||
@click="refreshUserDialogAvatars">
|
@click="refreshUserDialogAvatars">
|
||||||
@@ -227,26 +227,29 @@
|
|||||||
</RadioGroup>
|
</RadioGroup>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div style="display: flex; justify-content: end">
|
<div style="display: flex; justify-content: end" class="mt-2">
|
||||||
<RadioGroup
|
<Select
|
||||||
:model-value="searchAvatarSort"
|
:model-value="searchAvatarSort"
|
||||||
:disabled="searchAvatarFilterRemote !== 'local'"
|
:disabled="searchAvatarFilterRemote !== 'local'"
|
||||||
class="flex items-center gap-4"
|
|
||||||
style="margin: 5px"
|
style="margin: 5px"
|
||||||
@update:modelValue="handleSearchAvatarSortChange">
|
@update:modelValue="handleSearchAvatarSortChange">
|
||||||
<div class="flex items-center space-x-2">
|
<SelectTrigger size="sm">
|
||||||
<RadioGroupItem id="searchAvatarSort-name" value="name" />
|
<SelectValue :placeholder="t('view.search.avatar.sort_name')" />
|
||||||
<label for="searchAvatarSort-name">{{ t('view.search.avatar.sort_name') }}</label>
|
</SelectTrigger>
|
||||||
</div>
|
<SelectContent>
|
||||||
<div class="flex items-center space-x-2">
|
<SelectGroup>
|
||||||
<RadioGroupItem id="searchAvatarSort-update" value="update" />
|
<SelectItem value="name">
|
||||||
<label for="searchAvatarSort-update">{{ t('view.search.avatar.sort_update') }}</label>
|
{{ t('view.search.avatar.sort_name') }}
|
||||||
</div>
|
</SelectItem>
|
||||||
<div class="flex items-center space-x-2">
|
<SelectItem value="update">
|
||||||
<RadioGroupItem id="searchAvatarSort-created" value="created" />
|
{{ t('view.search.avatar.sort_update') }}
|
||||||
<label for="searchAvatarSort-created">{{ t('view.search.avatar.sort_created') }}</label>
|
</SelectItem>
|
||||||
</div>
|
<SelectItem value="created">
|
||||||
</RadioGroup>
|
{{ t('view.search.avatar.sort_created') }}
|
||||||
|
</SelectItem>
|
||||||
|
</SelectGroup>
|
||||||
|
</SelectContent>
|
||||||
|
</Select>
|
||||||
</div>
|
</div>
|
||||||
<div class="x-friend-list" style="margin-top: 20px; min-height: 500px">
|
<div class="x-friend-list" style="margin-top: 20px; min-height: 500px">
|
||||||
<div
|
<div
|
||||||
|
|||||||
Reference in New Issue
Block a user