mirror of
https://github.com/vrcx-team/VRCX.git
synced 2026-04-06 00:32:02 +02:00
Button alignments
This commit is contained in:
@@ -16,12 +16,13 @@
|
||||
><br /><br />
|
||||
</template>
|
||||
<span
|
||||
><span style="color: var(--el-color-primary)">PC: </span
|
||||
><span class="x-tag-platform-pc">PC: </span
|
||||
>{{ props.instance.platforms.standalonewindows }}</span
|
||||
><br />
|
||||
<span
|
||||
><span style="color: var(--el-color-success)">Android: </span
|
||||
>{{ props.instance.platforms.android }}</span
|
||||
><span class="x-tag-platform-quest">Android: </span>{{ props.instance.platforms.android }}</span
|
||||
><br />
|
||||
<span><span>iOS: </span>{{ props.instance.platforms.ios }}</span
|
||||
><br />
|
||||
<span>{{ t('dialog.user.info.instance_game_version') }} {{ props.instance.gameServerVersion }}</span
|
||||
><br />
|
||||
|
||||
@@ -210,10 +210,14 @@
|
||||
}
|
||||
}
|
||||
|
||||
function translateAccessType(accessTypeName) {
|
||||
const key = accessTypeLocaleKeyMap[accessTypeName];
|
||||
function translateAccessType(accessTypeNameRaw) {
|
||||
const key = accessTypeLocaleKeyMap[accessTypeNameRaw];
|
||||
if (!key) {
|
||||
return accessTypeName;
|
||||
return accessTypeNameRaw;
|
||||
}
|
||||
if (accessTypeNameRaw === 'groupPublic' || accessTypeNameRaw === 'groupPlus') {
|
||||
const groupKey = accessTypeLocaleKeyMap['group'];
|
||||
return t(groupKey) + ' ' + t(key);
|
||||
}
|
||||
return t(key);
|
||||
}
|
||||
|
||||
@@ -103,6 +103,10 @@
|
||||
if (!key) {
|
||||
return accessTypeNameRaw;
|
||||
}
|
||||
if (accessTypeNameRaw === 'groupPublic' || accessTypeNameRaw === 'groupPlus') {
|
||||
const groupKey = accessTypeLocaleKeyMap['group'];
|
||||
return t(groupKey) + ' ' + t(key);
|
||||
}
|
||||
return t(key);
|
||||
}
|
||||
|
||||
|
||||
@@ -560,7 +560,6 @@
|
||||
openExternalLink,
|
||||
openFolderGeneric,
|
||||
replaceVrcPackageUrl,
|
||||
textToHex,
|
||||
timeToText
|
||||
} from '../../../shared/utils';
|
||||
import {
|
||||
|
||||
@@ -358,7 +358,7 @@
|
||||
<InviteYourself :location="room.tag" style="margin-left: 5px" />
|
||||
<TooltipWrapper side="top" content="Refresh player count">
|
||||
<Button
|
||||
class="rounded-full w-6 h-6 text-xs text-muted-foreground hover:text-foreground"
|
||||
class="rounded-full ml-1 w-6 h-6 text-xs text-muted-foreground hover:text-foreground"
|
||||
size="icon"
|
||||
variant="outline"
|
||||
@click="refreshInstancePlayerCount(room.tag)"
|
||||
@@ -614,38 +614,38 @@
|
||||
<div v-else class="extra">-</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="x-friend-item" style="width: 350px; cursor: default">
|
||||
<div class="detail">
|
||||
<span class="name">{{ t('dialog.group.info.url') }}</span>
|
||||
<span class="extra"
|
||||
>{{ groupDialog.ref.$url }}
|
||||
<TooltipWrapper side="top" :content="t('dialog.group.info.url_tooltip')">
|
||||
<Button
|
||||
class="rounded-full text-xs"
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
style="margin-left: 5px"
|
||||
@click="copyToClipboard(groupDialog.ref.$url)"
|
||||
><i class="ri-file-copy-line"></i
|
||||
></Button> </TooltipWrapper
|
||||
></span>
|
||||
<div class="inline-flex justify-between w-full">
|
||||
<div class="x-friend-item" style="cursor: default; width: 50%">
|
||||
<div class="detail">
|
||||
<span class="name">{{ t('dialog.group.info.url') }}</span>
|
||||
<span class="extra"
|
||||
>{{ groupDialog.ref.$url }}
|
||||
<TooltipWrapper side="top" :content="t('dialog.group.info.url_tooltip')">
|
||||
<Button
|
||||
class="rounded-full ml-1 text-xs"
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
@click="copyToClipboard(groupDialog.ref.$url)"
|
||||
><i class="ri-file-copy-line"></i
|
||||
></Button> </TooltipWrapper
|
||||
></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="x-friend-item" style="width: 350px; cursor: default">
|
||||
<div class="detail">
|
||||
<span class="name">{{ t('dialog.group.info.id') }}</span>
|
||||
<span class="extra"
|
||||
>{{ groupDialog.id }}
|
||||
<TooltipWrapper side="top" :content="t('dialog.group.info.id_tooltip')">
|
||||
<Button
|
||||
class="rounded-full text-xs"
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
style="margin-left: 5px"
|
||||
@click="copyToClipboard(groupDialog.id)"
|
||||
><i class="ri-file-copy-line"></i
|
||||
></Button> </TooltipWrapper
|
||||
></span>
|
||||
<div class="x-friend-item w-1/2" style="cursor: default; width: 50%">
|
||||
<div class="detail">
|
||||
<span class="name">{{ t('dialog.group.info.id') }}</span>
|
||||
<span class="extra"
|
||||
>{{ groupDialog.id }}
|
||||
<TooltipWrapper side="top" :content="t('dialog.group.info.id_tooltip')">
|
||||
<Button
|
||||
class="rounded-full ml-1 text-xs"
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
@click="copyToClipboard(groupDialog.id)"
|
||||
><i class="ri-file-copy-line"></i
|
||||
></Button> </TooltipWrapper
|
||||
></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
@@ -1171,7 +1171,6 @@
|
||||
openExternalLink,
|
||||
refreshInstancePlayerCount,
|
||||
removeFromArray,
|
||||
textToHex,
|
||||
userImage,
|
||||
userStatusClass
|
||||
} from '../../../shared/utils';
|
||||
@@ -1903,6 +1902,6 @@
|
||||
gap: 16px;
|
||||
overflow-y: auto;
|
||||
max-height: 360px;
|
||||
padding: 10px 0;
|
||||
padding: 9px 0;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
side="top"
|
||||
:content="t('dialog.user.info.refresh_instance_info')"
|
||||
><Button
|
||||
class="rounded-full w-6 h-6 text-xs text-muted-foreground hover:text-foreground"
|
||||
class="rounded-full ml-1 w-6 h-6 text-xs text-muted-foreground hover:text-foreground"
|
||||
size="icon"
|
||||
variant="outline"
|
||||
@click="refreshInstancePlayerCount(userDialog.$location.tag)"
|
||||
@@ -503,10 +503,9 @@
|
||||
<span class="extra">
|
||||
<span v-text="userDialog.$homeLocationName"></span>
|
||||
<Button
|
||||
class="rounded-full text-xs ml-1"
|
||||
class="rounded-full ml-1 text-xs"
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
style="margin-left: 5px"
|
||||
@click.stop="resetHome()"
|
||||
><i class="ri-delete-bin-line"></i>
|
||||
</Button>
|
||||
@@ -522,7 +521,7 @@
|
||||
<DropdownMenu>
|
||||
<DropdownMenuTrigger as-child>
|
||||
<Button
|
||||
class="rounded-full text-xs"
|
||||
class="rounded-full ml-1 text-xs"
|
||||
size="icon-sm"
|
||||
variant="outline"
|
||||
@click.stop
|
||||
|
||||
@@ -351,7 +351,7 @@
|
||||
side="top"
|
||||
:content="t('dialog.world.instances.refresh_instance_info')">
|
||||
<Button
|
||||
class="rounded-full w-6 h-6 text-xs text-muted-foreground hover:text-foreground"
|
||||
class="rounded-full ml-1 w-6 h-6 text-xs text-muted-foreground hover:text-foreground"
|
||||
size="icon"
|
||||
variant="outline"
|
||||
@click="refreshInstancePlayerCount(room.tag)"
|
||||
@@ -785,7 +785,6 @@
|
||||
openFolderGeneric,
|
||||
refreshInstancePlayerCount,
|
||||
replaceVrcPackageUrl,
|
||||
textToHex,
|
||||
timeToText,
|
||||
userImage,
|
||||
userStatusClass
|
||||
|
||||
@@ -566,11 +566,11 @@
|
||||
"age_gated_instances": "Age Gated Instances",
|
||||
"nicknames": "Memo Nicknames",
|
||||
"sort_favorite_by": "Sort Favorites by",
|
||||
"sort_favorite_by_name": "name",
|
||||
"sort_favorite_by_date": "date",
|
||||
"sort_favorite_by_name": "Name",
|
||||
"sort_favorite_by_date": "Date",
|
||||
"sort_instance_users_by": "Sort Instance Users by",
|
||||
"sort_instance_users_by_time": "time",
|
||||
"sort_instance_users_by_alphabet": "alphabetical",
|
||||
"sort_instance_users_by_time": "Time",
|
||||
"sort_instance_users_by_alphabet": "Alphabetical",
|
||||
"table_max_size": "Table Max Size",
|
||||
"table_page_sizes": "Table Page Sizes",
|
||||
"table_page_sizes_error": "Page size must be a number between 1 and 1000",
|
||||
|
||||
@@ -71,28 +71,30 @@
|
||||
v-loading="isSearchWorldLoading"
|
||||
:label="t('view.search.world.header')"
|
||||
style="min-height: 60px">
|
||||
<Select
|
||||
:model-value="searchWorldCategoryIndex"
|
||||
@update:modelValue="handleSearchWorldCategorySelect"
|
||||
style="margin-bottom: 15px">
|
||||
<SelectTrigger size="sm">
|
||||
<SelectValue :placeholder="t('view.search.world.category')" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectGroup>
|
||||
<SelectItem
|
||||
v-for="row in cachedConfig.dynamicWorldRows"
|
||||
:key="row.index"
|
||||
:value="row.index">
|
||||
{{ row.name }}
|
||||
</SelectItem>
|
||||
</SelectGroup>
|
||||
</SelectContent>
|
||||
</Select>
|
||||
<label class="inline-flex items-center gap-2" style="margin-left: 10px">
|
||||
<Checkbox v-model="searchWorldLabs" />
|
||||
<span>{{ t('view.search.world.community_lab') }}</span>
|
||||
</label>
|
||||
<div class="inline-flex justify-between mb-4 w-full">
|
||||
<Select
|
||||
:model-value="searchWorldCategoryIndex"
|
||||
@update:modelValue="handleSearchWorldCategorySelect"
|
||||
style="margin-bottom: 15px">
|
||||
<SelectTrigger size="sm">
|
||||
<SelectValue :placeholder="t('view.search.world.category')" />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
<SelectGroup>
|
||||
<SelectItem
|
||||
v-for="row in cachedConfig.dynamicWorldRows"
|
||||
:key="row.index"
|
||||
:value="row.index">
|
||||
{{ row.name }}
|
||||
</SelectItem>
|
||||
</SelectGroup>
|
||||
</SelectContent>
|
||||
</Select>
|
||||
<label class="inline-flex items-center gap-2" style="margin-left: 10px">
|
||||
<Checkbox v-model="searchWorldLabs" />
|
||||
<span>{{ t('view.search.world.community_lab') }}</span>
|
||||
</label>
|
||||
</div>
|
||||
<div class="x-friend-list" style="min-height: 500px">
|
||||
<div
|
||||
v-for="world in searchWorldResults"
|
||||
@@ -161,6 +163,7 @@
|
||||
:loading="userDialog.isAvatarsLoading"
|
||||
size="small"
|
||||
:icon="Refresh"
|
||||
class="ml-1"
|
||||
circle
|
||||
@click="refreshUserDialogAvatars"></el-button>
|
||||
</TooltipWrapper>
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
<span class="name">{{ t('view.settings.appearance.appearance.sort_favorite_by') }}</span>
|
||||
<RadioGroup
|
||||
:model-value="sortFavorites ? 'true' : 'false'"
|
||||
class="gap-2"
|
||||
class="gap-2 flex"
|
||||
style="margin-top: 8px"
|
||||
@update:modelValue="handleSortFavoritesRadio">
|
||||
<div class="flex items-center space-x-2">
|
||||
@@ -101,7 +101,7 @@
|
||||
<span class="name">{{ t('view.settings.appearance.appearance.sort_instance_users_by') }}</span>
|
||||
<RadioGroup
|
||||
:model-value="instanceUsersSortAlphabetical ? 'true' : 'false'"
|
||||
class="gap-2"
|
||||
class="gap-2 flex"
|
||||
style="margin-top: 8px"
|
||||
@update:modelValue="handleInstanceUsersSortAlphabeticalRadio">
|
||||
<div class="flex items-center space-x-2">
|
||||
@@ -182,7 +182,7 @@
|
||||
<span class="name">{{ t('view.settings.appearance.timedate.time_format') }}</span>
|
||||
<RadioGroup
|
||||
:model-value="dtHour12 ? 'true' : 'false'"
|
||||
class="gap-2"
|
||||
class="gap-2 flex"
|
||||
style="margin-top: 8px"
|
||||
@update:modelValue="handleDtHour12Radio">
|
||||
<div class="flex items-center space-x-2">
|
||||
@@ -237,7 +237,7 @@
|
||||
}}</SelectItem>
|
||||
</SelectContent>
|
||||
</Select>
|
||||
<el-icon style="padding: 5px"><ArrowRight /></el-icon>
|
||||
<el-icon style="margin: 5px"><ArrowRight /></el-icon>
|
||||
<Select
|
||||
:model-value="sidebarSortMethod2"
|
||||
:disabled="!sidebarSortMethod1"
|
||||
@@ -270,7 +270,7 @@
|
||||
}}</SelectItem>
|
||||
</SelectContent>
|
||||
</Select>
|
||||
<el-icon style="padding: 5px"><ArrowRight /></el-icon>
|
||||
<el-icon style="margin: 5px"><ArrowRight /></el-icon>
|
||||
<Select
|
||||
:model-value="sidebarSortMethod3"
|
||||
:disabled="!sidebarSortMethod2"
|
||||
|
||||
@@ -220,7 +220,7 @@
|
||||
<RadioGroup
|
||||
:model-value="autoStateChangeNoFriends ? 'true' : 'false'"
|
||||
:disabled="!autoStateChangeEnabled"
|
||||
class="gap-2"
|
||||
class="gap-2 flex"
|
||||
style="margin-top: 8px"
|
||||
@update:modelValue="handleAutoStateChangeNoFriendsRadio">
|
||||
<div class="flex items-center space-x-2">
|
||||
@@ -280,7 +280,7 @@
|
||||
</div>
|
||||
<div class="options-container" style="margin-top: 45px; border-top: 1px solid #eee; padding-top: 30px">
|
||||
<span class="header">{{ t('view.settings.general.legal_notice.header') }}</span>
|
||||
<div class="options-container-item">
|
||||
<div class="options-container-item" style="display: block">
|
||||
<p>
|
||||
© 2019-2025
|
||||
<a class="x-link" @click="openExternalLink('https://github.com/pypy-vrc')">pypy</a> &
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<!--//- Pictures | Screenshot Helper-->
|
||||
<div class="options-container">
|
||||
<div class="options-container" style="margin-top: 0">
|
||||
<span class="header">{{ t('view.settings.advanced.advanced.screenshot_helper.header') }}</span>
|
||||
<div class="options-container-item">
|
||||
<span class="name">{{ t('view.settings.advanced.advanced.screenshot_helper.description') }}</span>
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
<RadioGroup
|
||||
:model-value="openVRAlways ? 'true' : 'false'"
|
||||
:disabled="!openVR"
|
||||
class="gap-2"
|
||||
class="gap-2 flex"
|
||||
style="margin-top: 8px"
|
||||
@update:modelValue="handleOpenVRAlwaysRadio">
|
||||
<div class="flex items-center space-x-2">
|
||||
@@ -64,7 +64,7 @@
|
||||
<RadioGroup
|
||||
:model-value="overlaybutton ? 'true' : 'false'"
|
||||
:disabled="!openVR || !overlayWrist"
|
||||
class="gap-2"
|
||||
class="gap-2 flex"
|
||||
style="margin-top: 8px"
|
||||
@update:modelValue="handleOverlayButtonRadio">
|
||||
<div class="flex items-center space-x-2">
|
||||
|
||||
Reference in New Issue
Block a user