mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-17 22:03:50 +02:00
Reverse fav export order
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
<span v-if="avatarName" class="flex items-center mr-1"
|
||||
>{{ avatarName }} <Lock v-if="avatarType && avatarType === '(own)'" class="h-4 w-4 ml-1"
|
||||
/></span>
|
||||
<span v-else class="text-muted-foreground">Unknown Avatar</span>
|
||||
<span v-else class="flex items-center mr-1 text-muted-foreground">Unknown Avatar</span>
|
||||
<TooltipWrapper v-if="avatarTags">
|
||||
<template #content>
|
||||
<span class="truncate">{{ avatarTags }}</span>
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
>{{ props.setAvatarTagsDialog.selectedAvatarIds.length }} /
|
||||
{{ setAvatarTagsDialog.ownAvatars.length }}</span
|
||||
>
|
||||
<Loader2 v-if="setAvatarTagsDialog.loading" class="is-loading" style="margin-left: 5px" />
|
||||
<Spinner v-if="setAvatarTagsDialog.loading" class="inline-block ml-2" />
|
||||
<br />
|
||||
<div class="x-friend-list" style="margin-top: 10px; min-height: 60px; max-height: 280px">
|
||||
<div
|
||||
@@ -111,7 +111,7 @@
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { Checkbox } from '@/components/ui/checkbox';
|
||||
import { InputGroupTextareaField } from '@/components/ui/input-group';
|
||||
import { Loader2 } from 'lucide-vue-next';
|
||||
import { Spinner } from '@/components/ui/spinner';
|
||||
import { toast } from 'vue-sonner';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import { watch } from 'vue';
|
||||
|
||||
@@ -532,7 +532,7 @@
|
||||
>{{ t('dialog.group_member_moderation.unban') }}</Button
|
||||
>
|
||||
<span v-if="progressCurrent" style="margin-top: 10px">
|
||||
<Loader2 class="is-loading" style="margin-left: 5px; margin-right: 5px" />
|
||||
<Spinner class="inline-block ml-2 mr-2" />
|
||||
{{ t('dialog.group_member_moderation.progress') }} {{ progressCurrent }}/{{ progressTotal }}
|
||||
</span>
|
||||
<Button
|
||||
|
||||
@@ -1202,6 +1202,7 @@ export const useUserStore = defineStore('User', () => {
|
||||
|
||||
async function refreshUserDialogAvatars(fileId) {
|
||||
const D = userDialog.value;
|
||||
const userId = D.id;
|
||||
if (D.isAvatarsLoading) {
|
||||
return;
|
||||
}
|
||||
@@ -1237,7 +1238,9 @@ export const useUserStore = defineStore('User', () => {
|
||||
},
|
||||
done: () => {
|
||||
const array = Array.from(map.values());
|
||||
sortUserDialogAvatars(array);
|
||||
if (userId === D.id) {
|
||||
sortUserDialogAvatars(array);
|
||||
}
|
||||
D.isAvatarsLoading = false;
|
||||
if (fileId) {
|
||||
D.loading = false;
|
||||
@@ -1871,6 +1874,10 @@ export const useUserStore = defineStore('User', () => {
|
||||
currentAvatarThumbnailImageUrl: '',
|
||||
date_joined: '',
|
||||
developerType: '',
|
||||
discordDetails: {
|
||||
global_name: '',
|
||||
id: ''
|
||||
},
|
||||
discordId: '',
|
||||
displayName: '',
|
||||
emailVerified: false,
|
||||
@@ -1880,6 +1887,7 @@ export const useUserStore = defineStore('User', () => {
|
||||
friends: [],
|
||||
googleId: '',
|
||||
hasBirthday: false,
|
||||
hasDiscordFriendsOptOut: false,
|
||||
hasEmail: false,
|
||||
hasLoggedInFromClient: false,
|
||||
hasPendingEmail: false,
|
||||
|
||||
@@ -1599,7 +1599,6 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
.group-item__count {
|
||||
|
||||
@@ -1242,6 +1242,12 @@
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.group-item__right {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.group-item__count {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
@@ -249,7 +249,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
avatarExportContent.value = lines.join('\n');
|
||||
avatarExportContent.value = lines.reverse().join('\n');
|
||||
}
|
||||
function selectAvatarExportGroup(group) {
|
||||
avatarExportFavoriteGroup.value = group;
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<div v-if="avatarImportDialog.progress">
|
||||
{{ t('dialog.avatar_import.process_progress') }} {{ avatarImportDialog.progress }} /
|
||||
{{ avatarImportDialog.progressTotal }}
|
||||
<Loader2 style="margin: 0 5px" />
|
||||
<Spinner class="inline-block ml-2 mr-2" />
|
||||
</div>
|
||||
<Button v-if="avatarImportDialog.loading" size="sm" variant="secondary" @click="cancelAvatarImport">
|
||||
{{ t('dialog.avatar_import.cancel') }}
|
||||
@@ -89,7 +89,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<span v-if="avatarImportDialog.importProgress" style="margin: 10px">
|
||||
<Loader2 style="margin-right: 5px" />
|
||||
<Spinner class="inline-block ml-2 mr-2" />
|
||||
{{ t('dialog.avatar_import.import_progress') }}
|
||||
{{ avatarImportDialog.importProgress }}/{{ avatarImportDialog.importProgressTotal }}
|
||||
</span>
|
||||
@@ -121,7 +121,7 @@
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { DataTableLayout } from '@/components/ui/data-table';
|
||||
import { InputGroupTextareaField } from '@/components/ui/input-group';
|
||||
import { Loader2 } from 'lucide-vue-next';
|
||||
import { Spinner } from '@/components/ui/spinner';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import { toast } from 'vue-sonner';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
@@ -247,11 +247,10 @@
|
||||
}
|
||||
}
|
||||
D.progress++;
|
||||
if (D.progress === avatarIdList.size) {
|
||||
D.progress = 0;
|
||||
}
|
||||
}
|
||||
D.loading = false;
|
||||
D.progress = 0;
|
||||
D.progressTotal = 0;
|
||||
}
|
||||
|
||||
function deleteItemAvatarImport(ref) {
|
||||
|
||||
@@ -207,7 +207,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
friendExportContent.value = lines.join('\n');
|
||||
friendExportContent.value = lines.reverse().join('\n');
|
||||
}
|
||||
|
||||
function selectFriendExportGroup(group) {
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<div v-if="friendImportDialog.progress">
|
||||
{{ t('dialog.friend_import.process_progress') }} {{ friendImportDialog.progress }} /
|
||||
{{ friendImportDialog.progressTotal }}
|
||||
<Loader2 style="margin: 0 5px" />
|
||||
<Spinner class="inline-block ml-1 mr-1" />
|
||||
</div>
|
||||
<Button v-if="friendImportDialog.loading" size="sm" variant="secondary" @click="cancelFriendImport">
|
||||
{{ t('dialog.friend_import.cancel') }}
|
||||
@@ -93,7 +93,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<span v-if="friendImportDialog.importProgress" style="margin: 10px">
|
||||
<Loader2 style="margin-right: 5px" />
|
||||
<Spinner class="inline-block ml-2 mr-2" />
|
||||
{{ t('dialog.friend_import.import_progress') }} {{ friendImportDialog.importProgress }}/{{
|
||||
friendImportDialog.importProgressTotal
|
||||
}}
|
||||
@@ -124,7 +124,7 @@
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { DataTableLayout } from '@/components/ui/data-table';
|
||||
import { InputGroupTextareaField } from '@/components/ui/input-group';
|
||||
import { Loader2 } from 'lucide-vue-next';
|
||||
import { Spinner } from '@/components/ui/spinner';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import { toast } from 'vue-sonner';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
@@ -340,11 +340,10 @@
|
||||
}
|
||||
}
|
||||
D.progress++;
|
||||
if (D.progress === userIdList.size) {
|
||||
D.progress = 0;
|
||||
}
|
||||
}
|
||||
D.loading = false;
|
||||
D.progress = 0;
|
||||
D.progressTotal = 0;
|
||||
}
|
||||
function resetFriendImport() {
|
||||
friendImportDialog.value.input = '';
|
||||
|
||||
@@ -242,7 +242,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
worldExportContent.value = lines.join('\n');
|
||||
worldExportContent.value = lines.reverse().join('\n');
|
||||
}
|
||||
|
||||
function selectWorldExportGroup(group) {
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<div v-if="worldImportDialog.progress">
|
||||
{{ t('dialog.world_import.process_progress') }}
|
||||
{{ worldImportDialog.progress }} / {{ worldImportDialog.progressTotal }}
|
||||
<Loader2 style="margin: 0 5px" />
|
||||
<Spinner class="inline-block ml-2 mr-2" />
|
||||
</div>
|
||||
<Button v-if="worldImportDialog.loading" size="sm" variant="outline" @click="cancelWorldImport">
|
||||
{{ t('dialog.world_import.cancel') }}
|
||||
@@ -93,7 +93,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<span v-if="worldImportDialog.importProgress" style="margin: 10px">
|
||||
<Loader2 style="margin-right: 5px" />
|
||||
<Spinner class="inline-block ml-2 mr-2" />
|
||||
{{ t('dialog.world_import.import_progress') }}
|
||||
{{ worldImportDialog.importProgress }}/{{ worldImportDialog.importProgressTotal }}
|
||||
</span>
|
||||
@@ -125,7 +125,7 @@
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { DataTableLayout } from '@/components/ui/data-table';
|
||||
import { InputGroupTextareaField } from '@/components/ui/input-group';
|
||||
import { Loader2 } from 'lucide-vue-next';
|
||||
import { Spinner } from '@/components/ui/spinner';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import { toast } from 'vue-sonner';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
@@ -257,11 +257,10 @@
|
||||
}
|
||||
}
|
||||
D.progress++;
|
||||
if (D.progress === worldIdList.size) {
|
||||
D.progress = 0;
|
||||
}
|
||||
}
|
||||
D.loading = false;
|
||||
D.progress = 0;
|
||||
D.progressTotal = 0;
|
||||
}
|
||||
|
||||
function deleteItemWorldImport(ref) {
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
{{ t('dialog.note_export.cancel') }}
|
||||
</Button>
|
||||
<span v-if="loading" style="margin: 10px">
|
||||
<Loader2 style="margin-right: 5px" />
|
||||
<Spinner class="inline-block ml-2 mr-2" />
|
||||
{{ t('dialog.note_export.progress') }} {{ progress }}/{{ progressTotal }}
|
||||
</span>
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
import { computed, ref, watch } from 'vue';
|
||||
import { Button } from '@/components/ui/button';
|
||||
import { DataTableLayout } from '@/components/ui/data-table';
|
||||
import { Loader2 } from 'lucide-vue-next';
|
||||
import { Spinner } from '@/components/ui/spinner';
|
||||
import { storeToRefs } from 'pinia';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user