mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-30 12:13:48 +02:00
remove v-directives
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="favorites-page x-container" v-loading="isFavoriteLoading">
|
||||
<div class="favorites-page x-container">
|
||||
<div class="favorites-toolbar">
|
||||
<div>
|
||||
<Select :model-value="sortFavorites" @update:modelValue="handleSortFavoritesChange">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="favorites-page x-container" v-loading="isFavoriteLoading">
|
||||
<div class="favorites-page x-container">
|
||||
<div class="favorites-toolbar">
|
||||
<div>
|
||||
<Select :model-value="sortFavorites" @update:modelValue="handleSortFavoritesChange">
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="favorites-page x-container" v-loading="isFavoriteLoading">
|
||||
<div class="favorites-page x-container">
|
||||
<div class="favorites-toolbar">
|
||||
<div>
|
||||
<Select :model-value="sortFavorites" @update:modelValue="handleSortFavoritesChange">
|
||||
|
||||
@@ -181,7 +181,6 @@
|
||||
const friendsListColumns = computed(() =>
|
||||
createColumns({
|
||||
randomUserColours,
|
||||
bulkUnfriendMode: friendsListBulkUnfriendMode,
|
||||
selectedFriends,
|
||||
onToggleFriendSelection: toggleFriendSelection,
|
||||
onConfirmDeleteFriend: confirmDeleteFriend
|
||||
@@ -227,6 +226,18 @@
|
||||
{ immediate: true }
|
||||
);
|
||||
|
||||
watch(
|
||||
friendsListBulkUnfriendMode,
|
||||
(enabled) => {
|
||||
const column = table?.getColumn?.('bulkSelect');
|
||||
if (!column) {
|
||||
return;
|
||||
}
|
||||
column.toggleVisibility(Boolean(enabled));
|
||||
},
|
||||
{ immediate: true }
|
||||
);
|
||||
|
||||
watch(pageSize, (size) => {
|
||||
if (pagination.value.pageSize === size) {
|
||||
return;
|
||||
|
||||
@@ -91,16 +91,26 @@ const sortByLanguages = (rowA, rowB) =>
|
||||
|
||||
export const createColumns = ({
|
||||
randomUserColours,
|
||||
bulkUnfriendMode,
|
||||
selectedFriends,
|
||||
onToggleFriendSelection,
|
||||
onConfirmDeleteFriend
|
||||
}) => {
|
||||
/** @type {import('@tanstack/vue-table').ColumnDef<any, any>[]} */
|
||||
const cols = [];
|
||||
|
||||
if (bulkUnfriendMode?.value) {
|
||||
cols.push({
|
||||
cols.push(
|
||||
{
|
||||
id: 'leftSpacer',
|
||||
header: () => null,
|
||||
size: 20,
|
||||
enableSorting: false,
|
||||
enableResizing: false,
|
||||
meta: {
|
||||
thClass: 'p-0',
|
||||
tdClass: 'p-0'
|
||||
},
|
||||
cell: () => null
|
||||
},
|
||||
{
|
||||
id: 'bulkSelect',
|
||||
header: () => null,
|
||||
size: 55,
|
||||
@@ -127,21 +137,6 @@ export const createColumns = ({
|
||||
</div>
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
cols.push(
|
||||
{
|
||||
id: 'leftSpacer',
|
||||
header: () => null,
|
||||
size: 20,
|
||||
enableSorting: false,
|
||||
enableResizing: false,
|
||||
meta: {
|
||||
thClass: 'p-0',
|
||||
tdClass: 'p-0'
|
||||
},
|
||||
cell: () => null
|
||||
},
|
||||
{
|
||||
id: 'friendNumber',
|
||||
|
||||
@@ -31,7 +31,7 @@ export const createColumns = ({ onDelete, onDeletePrompt }) => {
|
||||
},
|
||||
{
|
||||
accessorKey: 'created_at',
|
||||
size: 90,
|
||||
size: 100,
|
||||
header: ({ column }) => (
|
||||
<Button
|
||||
variant="ghost"
|
||||
@@ -65,7 +65,7 @@ export const createColumns = ({ onDelete, onDeletePrompt }) => {
|
||||
{
|
||||
accessorKey: 'type',
|
||||
|
||||
size: 110,
|
||||
size: 120,
|
||||
header: () => t('table.friendLog.type'),
|
||||
cell: ({ row }) => {
|
||||
const type = row.getValue('type');
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
/></Button>
|
||||
</TooltipWrapper>
|
||||
</div>
|
||||
<div v-loading="loginForm.loading" class="x-login-container">
|
||||
<div class="x-login-container">
|
||||
<div class="x-login">
|
||||
<div class="x-login-form-container">
|
||||
<div>
|
||||
|
||||
@@ -32,7 +32,7 @@ export const createColumns = ({ onDelete, onDeletePrompt }) => {
|
||||
},
|
||||
{
|
||||
accessorKey: 'created',
|
||||
size: 90,
|
||||
size: 100,
|
||||
header: ({ column }) => (
|
||||
<Button
|
||||
variant="ghost"
|
||||
@@ -65,7 +65,7 @@ export const createColumns = ({ onDelete, onDeletePrompt }) => {
|
||||
},
|
||||
{
|
||||
accessorKey: 'type',
|
||||
size: 90,
|
||||
size: 100,
|
||||
header: () => t('table.moderation.type'),
|
||||
cell: ({ row }) => {
|
||||
const type = row.getValue('type');
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<DialogHeader>
|
||||
<DialogTitle>{{ t('dialog.chatbox_blacklist.header') }}</DialogTitle>
|
||||
</DialogHeader>
|
||||
<div v-if="chatboxBlacklistDialog.visible" v-loading="chatboxBlacklistDialog.loading">
|
||||
<div v-if="chatboxBlacklistDialog.visible">
|
||||
<h2>{{ t('dialog.chatbox_blacklist.keyword_blacklist') }}</h2>
|
||||
<InputGroupAction
|
||||
v-for="(item, index) in chatboxBlacklist"
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
:unmount-on-hide="false"
|
||||
style="margin-top: 15px">
|
||||
<template #user>
|
||||
<div v-loading="isSearchUserLoading" style="min-height: 60px">
|
||||
<div style="min-height: 60px">
|
||||
<label class="inline-flex items-center gap-2" style="margin-left: 10px">
|
||||
<Checkbox v-model="searchUserByBio" />
|
||||
<span>{{ t('view.search.user.search_by_bio') }}</span>
|
||||
@@ -75,7 +75,7 @@
|
||||
</div>
|
||||
</template>
|
||||
<template #world>
|
||||
<div v-loading="isSearchWorldLoading" style="min-height: 60px">
|
||||
<div style="min-height: 60px">
|
||||
<div class="inline-flex justify-between mb-4 w-full">
|
||||
<Select
|
||||
:model-value="searchWorldCategoryIndex"
|
||||
@@ -139,7 +139,7 @@
|
||||
</div>
|
||||
</template>
|
||||
<template #avatar>
|
||||
<div v-loading="isSearchAvatarLoading" style="min-height: 60px">
|
||||
<div style="min-height: 60px">
|
||||
<div style="display: flex; align-items: center; justify-content: space-between">
|
||||
<div style="display: flex; align-items: center">
|
||||
<Select
|
||||
@@ -297,7 +297,7 @@
|
||||
</div>
|
||||
</template>
|
||||
<template #group>
|
||||
<div v-loading="isSearchGroupLoading" style="min-height: 60px">
|
||||
<div style="min-height: 60px">
|
||||
<div class="x-friend-list" style="min-height: 500px">
|
||||
<div
|
||||
v-for="group in searchGroupResults"
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<DialogHeader>
|
||||
<DialogTitle>{{ t('dialog.change_log.header') }}</DialogTitle>
|
||||
</DialogHeader>
|
||||
<div v-loading="!changeLogDialog.changeLog" class="changelog-dialog">
|
||||
<div class="changelog-dialog">
|
||||
<h2 v-text="changeLogDialog.buildName"></h2>
|
||||
<span v-show="changeLogDialog.buildName">
|
||||
{{ t('dialog.change_log.description') }}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<DialogHeader>
|
||||
<DialogTitle>{{ t('dialog.config_json.header') }}</DialogTitle>
|
||||
</DialogHeader>
|
||||
<div v-loading="loading">
|
||||
<div>
|
||||
<div style="font-size: 12px; word-break: keep-all">
|
||||
{{ t('dialog.config_json.description1') }} <br />
|
||||
{{ t('dialog.config_json.description2') }}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
isFriendsGroupMe = !isFriendsGroupMe;
|
||||
saveFriendsGroupStates();
|
||||
">
|
||||
<ChevronDown class="rotation-transition" :class="{ 'is-rotated': isFriendsGroupMe }" />
|
||||
<ChevronDown class="rotation-transition" :class="{ 'is-rotated': !isFriendsGroupMe }" />
|
||||
<span style="margin-left: 5px">{{ t('side_panel.me') }}</span>
|
||||
</div>
|
||||
<div v-show="isFriendsGroupMe">
|
||||
@@ -43,7 +43,7 @@
|
||||
isVIPFriends = !isVIPFriends;
|
||||
saveFriendsGroupStates();
|
||||
">
|
||||
<ChevronDown class="rotation-transition" :class="{ 'is-rotated': isVIPFriends }" />
|
||||
<ChevronDown class="rotation-transition" :class="{ 'is-rotated': !isVIPFriends }" />
|
||||
<span style="margin-left: 5px">
|
||||
{{ t('side_panel.favorite') }} ―
|
||||
{{ vipFriendsDisplayNumber }}
|
||||
@@ -79,9 +79,7 @@
|
||||
|
||||
<template v-if="isSidebarGroupByInstance && friendsInSameInstance.length">
|
||||
<div class="x-friend-group x-link flex items-center" @click="toggleSwitchGroupByInstanceCollapsed">
|
||||
<ChevronDown
|
||||
class="rotation-transition"
|
||||
:class="{ 'is-rotated': !isSidebarGroupByInstanceCollapsed }" />
|
||||
<ChevronDown class="rotation-transition" :class="{ 'is-rotated': isSidebarGroupByInstanceCollapsed }" />
|
||||
<span style="margin-left: 5px"
|
||||
>{{ t('side_panel.same_instance') }} ― {{ friendsInSameInstance.length }}</span
|
||||
>
|
||||
@@ -116,7 +114,7 @@
|
||||
isOnlineFriends = !isOnlineFriends;
|
||||
saveFriendsGroupStates();
|
||||
">
|
||||
<ChevronDown class="rotation-transition" :class="{ 'is-rotated': isOnlineFriends }" />
|
||||
<ChevronDown class="rotation-transition" :class="{ 'is-rotated': !isOnlineFriends }" />
|
||||
<span style="margin-left: 5px"
|
||||
>{{ t('side_panel.online') }} ― {{ onlineFriendsByGroupStatus.length }}</span
|
||||
>
|
||||
@@ -135,7 +133,7 @@
|
||||
isActiveFriends = !isActiveFriends;
|
||||
saveFriendsGroupStates();
|
||||
">
|
||||
<ChevronDown class="rotation-transition" :class="{ 'is-rotated': isActiveFriends }" />
|
||||
<ChevronDown class="rotation-transition" :class="{ 'is-rotated': !isActiveFriends }" />
|
||||
<span style="margin-left: 5px">{{ t('side_panel.active') }} ― {{ activeFriends.length }}</span>
|
||||
</div>
|
||||
<div v-if="isActiveFriends">
|
||||
@@ -152,7 +150,7 @@
|
||||
isOfflineFriends = !isOfflineFriends;
|
||||
saveFriendsGroupStates();
|
||||
">
|
||||
<ChevronDown class="rotation-transition" :class="{ 'is-rotated': isOfflineFriends }" />
|
||||
<ChevronDown class="rotation-transition" :class="{ 'is-rotated': !isOfflineFriends }" />
|
||||
<span style="margin-left: 5px">{{ t('side_panel.offline') }} ― {{ offlineFriends.length }}</span>
|
||||
</div>
|
||||
<div v-if="isOfflineFriends">
|
||||
@@ -315,9 +313,6 @@
|
||||
.x-link:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
/* .x-link:hover span {
|
||||
text-decoration: underline;
|
||||
} */
|
||||
.is-rotated {
|
||||
transform: rotate(-90deg);
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
</span>
|
||||
</template>
|
||||
<template #gallery>
|
||||
<div v-loading="galleryDialogGalleryLoading">
|
||||
<div>
|
||||
<input
|
||||
id="GalleryUploadButton"
|
||||
type="file"
|
||||
@@ -123,7 +123,7 @@
|
||||
</template>
|
||||
|
||||
<template #icons>
|
||||
<div v-loading="galleryDialogIconsLoading">
|
||||
<div>
|
||||
<input
|
||||
id="VRCPlusIconUploadButton"
|
||||
type="file"
|
||||
@@ -195,7 +195,7 @@
|
||||
</template>
|
||||
|
||||
<template #emojis>
|
||||
<div v-loading="galleryDialogEmojisLoading">
|
||||
<div>
|
||||
<input
|
||||
id="EmojiUploadButton"
|
||||
type="file"
|
||||
@@ -350,7 +350,7 @@
|
||||
</template>
|
||||
|
||||
<template #stickers>
|
||||
<div v-loading="galleryDialogStickersLoading">
|
||||
<div>
|
||||
<input
|
||||
id="StickerUploadButton"
|
||||
type="file"
|
||||
@@ -413,7 +413,7 @@
|
||||
</template>
|
||||
|
||||
<template #prints>
|
||||
<div v-loading="galleryDialogPrintsLoading">
|
||||
<div>
|
||||
<input
|
||||
id="PrintUploadButton"
|
||||
type="file"
|
||||
@@ -503,7 +503,7 @@
|
||||
</template>
|
||||
|
||||
<template #inventory>
|
||||
<div v-loading="galleryDialogInventoryLoading">
|
||||
<div>
|
||||
<br />
|
||||
<br />
|
||||
<div style="display: flex; align-items: center">
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
</Button>
|
||||
<span class="header">{{ t('dialog.screenshot_metadata.header') }}</span>
|
||||
</div>
|
||||
<div v-loading="screenshotMetadataDialog.loading" @dragover.prevent @dragenter.prevent @drop="handleDrop">
|
||||
<div @dragover.prevent @dragenter.prevent @drop="handleDrop">
|
||||
<span>{{
|
||||
t('dialog.screenshot_metadata.drag')
|
||||
}}</span>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<div class="category-header" @click="toggleCategory('group')">
|
||||
<ChevronDown
|
||||
class="rotation-transition"
|
||||
:class="{ 'is-rotated': !categoryCollapsed['group'] }" />
|
||||
:class="{ 'is-rotated': categoryCollapsed['group'] }" />
|
||||
<span class="category-title">{{ t('view.tools.group.header') }}</span>
|
||||
</div>
|
||||
<div class="tools-grid" v-show="!categoryCollapsed['group']">
|
||||
@@ -30,7 +30,7 @@
|
||||
<div class="category-header text-2xl" @click="toggleCategory('image')">
|
||||
<ChevronDown
|
||||
class="rotation-transition"
|
||||
:class="{ 'is-rotated': !categoryCollapsed['image'] }" />
|
||||
:class="{ 'is-rotated': categoryCollapsed['image'] }" />
|
||||
<span class="category-title">{{ t('view.tools.pictures.header') }}</span>
|
||||
</div>
|
||||
<div class="tools-grid" v-show="!categoryCollapsed['image']">
|
||||
@@ -93,9 +93,7 @@
|
||||
|
||||
<div class="tool-category">
|
||||
<div class="category-header text-2xl" @click="toggleCategory('user')">
|
||||
<ChevronDown
|
||||
class="rotation-transition"
|
||||
:class="{ 'is-rotated': !categoryCollapsed['user'] }" />
|
||||
<ChevronDown class="rotation-transition" :class="{ 'is-rotated': categoryCollapsed['user'] }" />
|
||||
<span class="category-title">{{ t('view.tools.export.header') }}</span>
|
||||
</div>
|
||||
|
||||
@@ -160,7 +158,7 @@
|
||||
<div class="category-header" @click="toggleCategory('other')">
|
||||
<ChevronDown
|
||||
class="rotation-transition"
|
||||
:class="{ 'is-rotated': !categoryCollapsed['other'] }" />
|
||||
:class="{ 'is-rotated': categoryCollapsed['other'] }" />
|
||||
<span class="category-title">{{ t('view.tools.other.header') }}</span>
|
||||
</div>
|
||||
<div class="tools-grid" v-show="!categoryCollapsed['other']">
|
||||
|
||||
@@ -314,9 +314,6 @@
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.event-card .badges .following-badge.is-following {
|
||||
}
|
||||
|
||||
.event-card .badges .share-badge {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div v-loading="props.isLoading" class="group-calendar-month">
|
||||
<div class="group-calendar-month">
|
||||
<CalendarRoot
|
||||
v-slot="{ grid, weekDays }"
|
||||
:model-value="internalValue"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
</DialogHeader>
|
||||
<InputGroupTextareaField
|
||||
v-model="exportAvatarsListCsv"
|
||||
v-loading="loading"
|
||||
|
||||
:rows="15"
|
||||
readonly
|
||||
style="margin-top: 15px"
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
class="search-input" />
|
||||
</div>
|
||||
|
||||
<div class="groups-grid" v-loading="isLoading">
|
||||
<div class="groups-grid">
|
||||
<div v-if="filteredGroupEvents.length" class="groups-container">
|
||||
<div v-for="group in filteredGroupEvents" :key="group.groupId" class="group-row">
|
||||
<div class="group-header" @click="toggleGroup(group.groupId)">
|
||||
|
||||
Reference in New Issue
Block a user