use computed get local favorite group length

This commit is contained in:
pa
2025-10-27 22:32:09 +09:00
committed by Natsumi
parent 5c9de1adba
commit 892790d5ab
8 changed files with 39 additions and 51 deletions

View File

@@ -29,13 +29,13 @@
style="display: block; width: 100%; margin: 10px 0; white-space: initial; height: auto"
@click="removeLocalWorldFavorite(favoriteDialog.objectId, group)">
<el-icon style="margin-right: 5px"><Check /></el-icon>
{{ group }} ({{ getLocalWorldFavoriteGroupLength(group) }})
{{ group }} ({{ localWorldFavGroupLength(group) }})
</el-button>
<el-button
v-else
style="display: block; width: 100%; margin: 10px 0; white-space: initial; height: auto"
@click="addLocalWorldFavorite(favoriteDialog.objectId, group)">
{{ group }} ({{ getLocalWorldFavoriteGroupLength(group) }})
{{ group }} ({{ localWorldFavGroupLength(group) }})
</el-button>
</template>
</div>
@@ -47,14 +47,14 @@
style="display: block; width: 100%; margin: 10px 0; white-space: initial; height: auto"
@click="removeLocalAvatarFavorite(favoriteDialog.objectId, group)">
<el-icon style="margin-right: 5px"><Check /></el-icon>
{{ group }} ({{ getLocalAvatarFavoriteGroupLength(group) }})
{{ group }} ({{ localAvatarFavGroupLength(group) }})
</el-button>
<el-button
v-else
style="display: block; width: 100%; margin: 10px 0; white-space: initial; height: auto"
:disabled="!isLocalUserVrcPlusSupporter"
@click="addLocalAvatarFavorite(favoriteDialog.objectId, group)">
{{ group }} ({{ getLocalAvatarFavoriteGroupLength(group) }})
{{ group }} ({{ localAvatarFavGroupLength(group) }})
</el-button>
</template>
</div>
@@ -85,12 +85,12 @@
localWorldFavoriteGroups
} = storeToRefs(favoriteStore);
const {
getLocalWorldFavoriteGroupLength,
localWorldFavGroupLength,
addLocalWorldFavorite,
hasLocalWorldFavorite,
hasLocalAvatarFavorite,
addLocalAvatarFavorite,
getLocalAvatarFavoriteGroupLength,
localAvatarFavGroupLength,
removeLocalAvatarFavorite,
removeLocalWorldFavorite,
deleteFavoriteNoConfirm

View File

@@ -135,6 +135,22 @@ export const useFavoriteStore = defineStore('Favorite', () => {
return groupedByGroupKeyFavoriteFriends;
});
const localWorldFavGroupLength = computed(() => (group) => {
const favoriteGroup = localWorldFavorites.value[group];
if (!favoriteGroup) {
return 0;
}
return favoriteGroup.length;
});
const localAvatarFavGroupLength = computed(() => (group) => {
const favoriteGroup = localAvatarFavorites.value[group];
if (!favoriteGroup) {
return 0;
}
return favoriteGroup.length;
});
watch(
() => watchState.isLoggedIn,
(isLoggedIn) => {
@@ -905,19 +921,6 @@ export const useFavoriteStore = defineStore('Favorite', () => {
friendImportDialogVisible.value = true;
}
/**
*
* @param {string} group
* @returns {*|number}
*/
function getLocalWorldFavoriteGroupLength(group) {
const favoriteGroup = localWorldFavorites.value[group];
if (!favoriteGroup) {
return 0;
}
return favoriteGroup.length;
}
/**
*
* @param {string} worldId
@@ -1040,19 +1043,6 @@ export const useFavoriteStore = defineStore('Favorite', () => {
return false;
}
/**
*
* @param {string} group
* @returns {*|number}
*/
function getLocalAvatarFavoriteGroupLength(group) {
const favoriteGroup = localAvatarFavorites.value[group];
if (!favoriteGroup) {
return 0;
}
return favoriteGroup.length;
}
function updateFavoriteDialog(objectId) {
const D = favoriteDialog.value;
if (!D.visible || D.objectId !== objectId) {
@@ -1608,12 +1598,12 @@ export const useFavoriteStore = defineStore('Favorite', () => {
showWorldImportDialog,
showAvatarImportDialog,
showFriendImportDialog,
getLocalWorldFavoriteGroupLength,
localWorldFavGroupLength,
addLocalWorldFavorite,
hasLocalWorldFavorite,
hasLocalAvatarFavorite,
addLocalAvatarFavorite,
getLocalAvatarFavoriteGroupLength,
localAvatarFavGroupLength,
updateFavoriteDialog,
deleteLocalAvatarFavoriteGroup,
renameLocalAvatarFavoriteGroup,

View File

@@ -165,7 +165,7 @@
<template #title v-if="localAvatarFavorites[group]">
<span :style="{ fontWeight: 'bold', fontSize: '14px', marginLeft: '10px' }">{{ group }}</span>
<span :style="{ color: '#909399', fontSize: '12px', marginLeft: '10px' }">{{
getLocalAvatarFavoriteGroupLength(group)
localAvatarFavGroupLength(group)
}}</span>
<el-tooltip placement="top" :content="t('view.favorite.rename_tooltip')" :teleported="false">
<el-button
@@ -253,7 +253,7 @@
} = storeToRefs(useFavoriteStore());
const {
showAvatarImportDialog,
getLocalAvatarFavoriteGroupLength,
localAvatarFavGroupLength,
deleteLocalAvatarFavoriteGroup,
renameLocalAvatarFavoriteGroup,
newLocalAvatarFavoriteGroup

View File

@@ -161,7 +161,7 @@
<template #title>
<span style="font-weight: bold; font-size: 14px; margin-left: 10px" v-text="group" />
<span style="color: #909399; font-size: 12px; margin-left: 10px">{{
getLocalWorldFavoriteGroupLength(group)
localWorldFavGroupLength(group)
}}</span>
<el-tooltip placement="top" :content="t('view.favorite.rename_tooltip')" :teleported="false">
<el-button
@@ -254,7 +254,7 @@
} = storeToRefs(useFavoriteStore());
const {
showWorldImportDialog,
getLocalWorldFavoriteGroupLength,
localWorldFavGroupLength,
deleteLocalWorldFavoriteGroup,
renameLocalWorldFavoriteGroup,
removeLocalWorldFavorite,

View File

@@ -42,7 +42,7 @@
<el-button size="small">
<span v-if="avatarExportLocalFavoriteGroup">
{{ avatarExportLocalFavoriteGroup }} ({{
getLocalAvatarFavoriteGroupLength(avatarExportLocalFavoriteGroup)
localAvatarFavGroupLength(avatarExportLocalFavoriteGroup)
}})
<el-icon class="el-icon--right"><ArrowDown /></el-icon>
</span>
@@ -62,7 +62,7 @@
<el-dropdown-item
style="display: block; margin: 10px 0"
@click="selectAvatarExportLocalGroup(group)">
{{ group }} ({{ getLocalAvatarFavoriteGroupLength(group) }})
{{ group }} ({{ localAvatarFavGroupLength(group) }})
</el-dropdown-item>
</template>
</el-dropdown-menu>
@@ -109,7 +109,7 @@
localAvatarFavoritesList,
localAvatarFavoriteGroups
} = storeToRefs(favoriteStore);
const { getLocalAvatarFavoriteGroupLength } = favoriteStore;
const { localAvatarFavGroupLength } = favoriteStore;
const { cachedAvatars } = useAvatarStore();
const avatarExportContent = ref('');

View File

@@ -59,7 +59,7 @@
<el-button size="small">
<span v-if="avatarImportDialog.avatarImportLocalFavoriteGroup">
{{ avatarImportDialog.avatarImportLocalFavoriteGroup }} ({{
getLocalAvatarFavoriteGroupLength(avatarImportDialog.avatarImportLocalFavoriteGroup)
localAvatarFavGroupLength(avatarImportDialog.avatarImportLocalFavoriteGroup)
}})
<el-icon class="el-icon--right"><ArrowDown /></el-icon>
</span>
@@ -74,7 +74,7 @@
<el-dropdown-item
style="display: block; margin: 10px 0"
@click="selectAvatarImportLocalGroup(group)">
{{ group }} ({{ getLocalAvatarFavoriteGroupLength(group) }})
{{ group }} ({{ localAvatarFavGroupLength(group) }})
</el-dropdown-item>
</template>
</el-dropdown-menu>
@@ -192,7 +192,7 @@
const { showUserDialog } = useUserStore();
const { favoriteAvatarGroups, avatarImportDialogInput, avatarImportDialogVisible, localAvatarFavoriteGroups } =
storeToRefs(useFavoriteStore());
const { addLocalAvatarFavorite, getLocalAvatarFavoriteGroupLength } = useFavoriteStore();
const { addLocalAvatarFavorite, localAvatarFavGroupLength } = useFavoriteStore();
const { showAvatarDialog, applyAvatar } = useAvatarStore();
const { showFullscreenImageDialog } = useGalleryStore();

View File

@@ -41,9 +41,7 @@
<el-dropdown trigger="click" size="small" style="margin-left: 10px">
<el-button size="small">
<span v-if="worldExportLocalFavoriteGroup">
{{ worldExportLocalFavoriteGroup }} ({{
getLocalWorldFavoriteGroupLength(worldExportLocalFavoriteGroup)
}})
{{ worldExportLocalFavoriteGroup }} ({{ localWorldFavGroupLength(worldExportLocalFavoriteGroup) }})
<el-icon class="el-icon--right"><ArrowDown /></el-icon>
</span>
<span v-else>
@@ -109,7 +107,7 @@
localWorldFavoriteGroups,
localWorldFavoritesList
} = storeToRefs(favoriteStore);
const { getLocalWorldFavoriteGroupLength } = favoriteStore;
const { localWorldFavGroupLength } = favoriteStore;
const { cachedWorlds } = useWorldStore();
const worldExportContent = ref('');

View File

@@ -61,7 +61,7 @@
<el-button size="small">
<span v-if="worldImportDialog.worldImportLocalFavoriteGroup">
{{ worldImportDialog.worldImportLocalFavoriteGroup }}
({{ getLocalWorldFavoriteGroupLength(worldImportDialog.worldImportLocalFavoriteGroup) }})
({{ localWorldFavGroupLength(worldImportDialog.worldImportLocalFavoriteGroup) }})
<el-icon class="el-icon--right"><ArrowDown /></el-icon>
</span>
<span v-else>
@@ -75,7 +75,7 @@
<el-dropdown-item
style="display: block; margin: 10px 0"
@click="selectWorldImportLocalGroup(group)">
{{ group }} ({{ getLocalWorldFavoriteGroupLength(group) }})
{{ group }} ({{ localWorldFavGroupLength(group) }})
</el-dropdown-item>
</template>
</el-dropdown-menu>
@@ -186,7 +186,7 @@
const { showUserDialog } = useUserStore();
const { favoriteWorldGroups, worldImportDialogInput, worldImportDialogVisible, localWorldFavoriteGroups } =
storeToRefs(useFavoriteStore());
const { getLocalWorldFavoriteGroupLength, addLocalWorldFavorite } = useFavoriteStore();
const { localWorldFavGroupLength, addLocalWorldFavorite } = useFavoriteStore();
const { showWorldDialog } = useWorldStore();
const { showFullscreenImageDialog } = useGalleryStore();