mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-26 02:03:49 +02:00
fix icon alignment
This commit is contained in:
@@ -471,11 +471,7 @@
|
||||
</div>
|
||||
<div class="x-friend-item" style="cursor: default">
|
||||
<div class="detail">
|
||||
<span class="name"
|
||||
>{{ t('dialog.avatar.info.time_spent')
|
||||
}}<TooltipWrapper side="top" :content="t('dialog.world.info.accuracy_notice')">
|
||||
<AlertTriangle style="margin-left: 3px" /> </TooltipWrapper
|
||||
></span>
|
||||
<span class="name">{{ t('dialog.avatar.info.time_spent') }}</span>
|
||||
|
||||
<span v-if="timeSpent === 0" class="extra">-</span>
|
||||
<span v-else class="extra">{{ timeToText(timeSpent) }}</span>
|
||||
@@ -499,7 +495,7 @@
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
@click="refreshAvatarDialogTreeData()">
|
||||
<RefreshCcw />
|
||||
<RefreshCw />
|
||||
</Button>
|
||||
<Button
|
||||
class="rounded-full h-6 w-6"
|
||||
@@ -532,7 +528,6 @@
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
AlertTriangle,
|
||||
Apple,
|
||||
Check,
|
||||
CheckCircle,
|
||||
@@ -542,7 +537,6 @@
|
||||
Image,
|
||||
Monitor,
|
||||
Pencil,
|
||||
RefreshCcw,
|
||||
RefreshCw,
|
||||
Share2,
|
||||
Smartphone,
|
||||
@@ -703,6 +697,9 @@
|
||||
|
||||
function avatarDialogTabClick(tabName) {
|
||||
if (tabName === avatarDialogLastActiveTab.value) {
|
||||
if (tabName === 'JSON') {
|
||||
refreshAvatarDialogTreeData();
|
||||
}
|
||||
return;
|
||||
}
|
||||
handleAvatarDialogTab(tabName);
|
||||
|
||||
@@ -4,6 +4,12 @@
|
||||
class="x-dialog x-group-dialog group-body translate-y-0 sm:max-w-235"
|
||||
:show-close-button="false"
|
||||
style="top: 10vh">
|
||||
<DialogHeader class="sr-only">
|
||||
<DialogTitle>{{ groupDialog.ref?.name || t('dialog.group.info.header') }}</DialogTitle>
|
||||
<DialogDescription>
|
||||
{{ groupDialog.ref?.description || groupDialog.ref?.name || t('dialog.group.info.header') }}
|
||||
</DialogDescription>
|
||||
</DialogHeader>
|
||||
<div v-loading="groupDialog.loading">
|
||||
<div style="display: flex">
|
||||
<img
|
||||
@@ -605,9 +611,6 @@
|
||||
<div class="detail">
|
||||
<span class="name">
|
||||
{{ t('dialog.group.info.last_visited') }}
|
||||
<TooltipWrapper side="top" :content="t('dialog.user.info.accuracy_notice')">
|
||||
<AlertTriangle style="margin-left: 3px" />
|
||||
</TooltipWrapper>
|
||||
</span>
|
||||
<span class="extra">{{ formatDateFilter(groupDialog.lastVisit, 'long') }}</span>
|
||||
</div>
|
||||
@@ -1144,7 +1147,7 @@
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
@click="refreshGroupDialogTreeData()">
|
||||
<RefreshCcw />
|
||||
<RefreshCw />
|
||||
</Button>
|
||||
<Button
|
||||
class="rounded-full h-6 w-6"
|
||||
@@ -1171,7 +1174,6 @@
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
AlertTriangle,
|
||||
Bell,
|
||||
BellOff,
|
||||
Check,
|
||||
@@ -1193,9 +1195,9 @@
|
||||
X,
|
||||
XCircle
|
||||
} from 'lucide-vue-next';
|
||||
import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from '@/components/ui/dialog';
|
||||
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select';
|
||||
import { computed, nextTick, reactive, ref, watch } from 'vue';
|
||||
import { Dialog, DialogContent } from '@/components/ui/dialog';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { Card } from '@/components/ui/card';
|
||||
import { InputGroupField } from '@/components/ui/input-group';
|
||||
@@ -1706,6 +1708,9 @@
|
||||
|
||||
function groupDialogTabClick(tabName) {
|
||||
if (tabName === groupDialogTabCurrentName.value) {
|
||||
if (tabName === 'JSON') {
|
||||
refreshGroupDialogTreeData();
|
||||
}
|
||||
return;
|
||||
}
|
||||
handleGroupDialogTab(tabName);
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<DialogContent>
|
||||
<DialogHeader>
|
||||
<DialogTitle>{{ t('dialog.launch.header') }}</DialogTitle>
|
||||
<DialogDescription class="sr-only">{{ t('dialog.launch.header') }}</DialogDescription>
|
||||
</DialogHeader>
|
||||
<FieldGroup class="gap-4">
|
||||
<Field>
|
||||
@@ -129,7 +130,7 @@
|
||||
|
||||
<script setup>
|
||||
import { computed, onBeforeUnmount, ref, watch } from 'vue';
|
||||
import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle } from '@/components/ui/dialog';
|
||||
import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from '@/components/ui/dialog';
|
||||
import {
|
||||
DropdownMenu,
|
||||
DropdownMenuContent,
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<DialogContent>
|
||||
<DialogHeader>
|
||||
<DialogTitle>{{ t('dialog.new_instance.header') }}</DialogTitle>
|
||||
<DialogDescription class="sr-only">{{ t('dialog.new_instance.header') }}</DialogDescription>
|
||||
</DialogHeader>
|
||||
<TabsUnderline
|
||||
v-model="newInstanceDialog.selectedTab"
|
||||
@@ -514,7 +515,7 @@
|
||||
|
||||
<script setup>
|
||||
import { Field, FieldContent, FieldGroup, FieldLabel } from '@/components/ui/field';
|
||||
import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle } from '@/components/ui/dialog';
|
||||
import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle } from '@/components/ui/dialog';
|
||||
import { computed, ref, watch } from 'vue';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { Check as CheckIcon } from 'lucide-vue-next';
|
||||
|
||||
@@ -178,7 +178,7 @@
|
||||
"
|
||||
side="top"
|
||||
:content="t('dialog.user.info.vrcplus_hides_avatar')">
|
||||
<AlertTriangle />
|
||||
<Info />
|
||||
</TooltipWrapper>
|
||||
</div>
|
||||
</div>
|
||||
@@ -293,9 +293,6 @@
|
||||
<div class="detail">
|
||||
<span class="name">
|
||||
{{ t('dialog.user.info.last_seen') }}
|
||||
<TooltipWrapper side="top" :content="t('dialog.user.info.accuracy_notice')">
|
||||
<AlertTriangle style="margin-left: 3px" />
|
||||
</TooltipWrapper>
|
||||
</span>
|
||||
<span class="extra">{{ formatDateFilter(userDialog.lastSeen, 'long') }}</span>
|
||||
</div>
|
||||
@@ -308,11 +305,6 @@
|
||||
style="display: flex; justify-content: space-between; align-items: center">
|
||||
<div>
|
||||
{{ t('dialog.user.info.join_count') }}
|
||||
<TooltipWrapper
|
||||
side="top"
|
||||
:content="t('dialog.user.info.accuracy_notice')">
|
||||
<AlertTriangle style="margin-left: 3px" />
|
||||
</TooltipWrapper>
|
||||
</div>
|
||||
|
||||
<TooltipWrapper
|
||||
@@ -330,9 +322,6 @@
|
||||
<div class="detail">
|
||||
<span class="name">
|
||||
{{ t('dialog.user.info.time_together') }}
|
||||
<TooltipWrapper side="top" :content="t('dialog.user.info.accuracy_notice')">
|
||||
<AlertTriangle style="margin-left: 3px" />
|
||||
</TooltipWrapper>
|
||||
</span>
|
||||
<span v-if="userDialog.timeSpent === 0" class="extra">-</span>
|
||||
<span v-else class="extra">{{ timeToText(userDialog.timeSpent) }}</span>
|
||||
@@ -348,11 +337,6 @@
|
||||
<div class="detail">
|
||||
<span class="name">
|
||||
{{ t('dialog.user.info.play_time') }}
|
||||
<TooltipWrapper
|
||||
side="top"
|
||||
:content="t('dialog.user.info.accuracy_notice')">
|
||||
<AlertTriangle style="margin-left: 3px" />
|
||||
</TooltipWrapper>
|
||||
</span>
|
||||
<span v-if="userDialog.timeSpent === 0" class="extra">-</span>
|
||||
<span v-else class="extra">{{ timeToText(userDialog.timeSpent) }}</span>
|
||||
@@ -370,15 +354,9 @@
|
||||
v-if="userDialog.ref.state === 'online' && userDialog.ref.$online_for"
|
||||
class="name">
|
||||
{{ t('dialog.user.info.online_for') }}
|
||||
<TooltipWrapper side="top" :content="t('dialog.user.info.accuracy_notice')">
|
||||
<AlertTriangle style="margin-left: 3px" />
|
||||
</TooltipWrapper>
|
||||
</span>
|
||||
<span v-else class="name">
|
||||
{{ t('dialog.user.info.offline_for') }}
|
||||
<TooltipWrapper side="top" :content="t('dialog.user.info.accuracy_notice')">
|
||||
<AlertTriangle style="margin-left: 3px" />
|
||||
</TooltipWrapper>
|
||||
</span>
|
||||
<span class="extra">{{ userOnlineFor(userDialog.ref) }}</span>
|
||||
</div>
|
||||
@@ -423,15 +401,9 @@
|
||||
<div class="detail">
|
||||
<span v-if="userDialog.unFriended" class="name">
|
||||
{{ t('dialog.user.info.unfriended') }}
|
||||
<TooltipWrapper side="top" :content="t('dialog.user.info.accuracy_notice')">
|
||||
<AlertTriangle style="margin-left: 3px" />
|
||||
</TooltipWrapper>
|
||||
</span>
|
||||
<span v-else class="name">
|
||||
{{ t('dialog.user.info.friended') }}
|
||||
<TooltipWrapper side="top" :content="t('dialog.user.info.accuracy_notice')">
|
||||
<AlertTriangle style="margin-left: 3px" />
|
||||
</TooltipWrapper>
|
||||
</span>
|
||||
<span class="extra">{{
|
||||
formatDateFilter(userDialog.dateFriended, 'long')
|
||||
@@ -1320,7 +1292,7 @@
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
@click="refreshUserDialogTreeData()">
|
||||
<RefreshCcw />
|
||||
<RefreshCw />
|
||||
</Button>
|
||||
<Button
|
||||
class="rounded-full h-6 w-6"
|
||||
@@ -1367,12 +1339,12 @@
|
||||
Download,
|
||||
DownloadIcon,
|
||||
Eye,
|
||||
Info,
|
||||
Languages,
|
||||
Loader2,
|
||||
LogOut,
|
||||
MoreHorizontal,
|
||||
Pencil,
|
||||
RefreshCcw,
|
||||
RefreshCw,
|
||||
Tag,
|
||||
Trash2
|
||||
@@ -1719,6 +1691,9 @@
|
||||
|
||||
function userDialogTabClick(tabName) {
|
||||
if (tabName === userDialogLastActiveTab.value) {
|
||||
if (tabName === 'JSON') {
|
||||
refreshUserDialogTreeData();
|
||||
}
|
||||
return;
|
||||
}
|
||||
handleUserDialogTab(tabName);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { ArrowUpDown, DoorOpen, Info, Trash2 } from 'lucide-vue-next';
|
||||
import { ArrowUpDown, Info, LogIn, Trash2 } from 'lucide-vue-next';
|
||||
|
||||
import DisplayName from '../../DisplayName.vue';
|
||||
import Location from '../../Location.vue';
|
||||
@@ -115,7 +115,7 @@ export const createColumns = ({
|
||||
onLaunch?.(original?.location);
|
||||
}}
|
||||
>
|
||||
<DoorOpen class="h-4 w-4" />
|
||||
<LogIn class="h-4 w-4" />
|
||||
</Button>
|
||||
|
||||
<Button
|
||||
|
||||
@@ -4,6 +4,12 @@
|
||||
class="x-dialog x-world-dialog translate-y-0 sm:max-w-235"
|
||||
:show-close-button="false"
|
||||
style="top: 10vh">
|
||||
<DialogHeader class="sr-only">
|
||||
<DialogTitle>{{ worldDialog.ref?.name || t('dialog.world.info.header') }}</DialogTitle>
|
||||
<DialogDescription>
|
||||
{{ worldDialog.ref?.description || worldDialog.ref?.name || t('dialog.world.info.header') }}
|
||||
</DialogDescription>
|
||||
</DialogHeader>
|
||||
<div v-loading="worldDialog.loading">
|
||||
<div style="display: flex">
|
||||
<img
|
||||
@@ -316,7 +322,7 @@
|
||||
:unmount-on-hide="false"
|
||||
@update:modelValue="worldDialogTabClick">
|
||||
<template #Instances>
|
||||
<div>
|
||||
<div class="flex items-center">
|
||||
<User />
|
||||
{{ t('dialog.world.instances.public_count', { count: worldDialog.ref.publicOccupants }) }}
|
||||
<User style="margin-left: 10px" />
|
||||
@@ -664,9 +670,6 @@
|
||||
<div class="detail">
|
||||
<span class="name">
|
||||
{{ t('dialog.world.info.last_visited') }}
|
||||
<TooltipWrapper side="top" :content="t('dialog.world.info.accuracy_notice')"
|
||||
><AlertTriangle style="margin-left: 3px" />
|
||||
</TooltipWrapper>
|
||||
</span>
|
||||
<span class="extra">
|
||||
{{ worldDialog.timeSpent === 0 ? ' - ' : timeSpent }}
|
||||
@@ -681,7 +684,7 @@
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
@click="refreshWorldDialogTreeData()">
|
||||
<RefreshCcw />
|
||||
<RefreshCw />
|
||||
</Button>
|
||||
<Button
|
||||
class="rounded-full h-6 w-6"
|
||||
@@ -723,7 +726,6 @@
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
AlertTriangle,
|
||||
Apple,
|
||||
ArrowDown,
|
||||
Check,
|
||||
@@ -740,7 +742,6 @@
|
||||
MessageSquare,
|
||||
Monitor,
|
||||
Pencil,
|
||||
RefreshCcw,
|
||||
RefreshCw,
|
||||
Share2,
|
||||
Smartphone,
|
||||
@@ -750,8 +751,8 @@
|
||||
User,
|
||||
Wand2
|
||||
} from 'lucide-vue-next';
|
||||
import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from '@/components/ui/dialog';
|
||||
import { computed, defineAsyncComponent, nextTick, ref, watch } from 'vue';
|
||||
import { Dialog, DialogContent } from '@/components/ui/dialog';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { InputGroupTextareaField } from '@/components/ui/input-group';
|
||||
import { TabsUnderline } from '@/components/ui/tabs';
|
||||
@@ -944,6 +945,9 @@
|
||||
|
||||
function worldDialogTabClick(tabName) {
|
||||
if (tabName === worldDialogLastActiveTab.value) {
|
||||
if (tabName === 'JSON') {
|
||||
refreshWorldDialogTreeData();
|
||||
}
|
||||
return;
|
||||
}
|
||||
handleWorldDialogTab(tabName);
|
||||
|
||||
Reference in New Issue
Block a user