릴리스: v1.3.67 아이템 참조 요약과 영향 표시
This commit is contained in:
@@ -1598,7 +1598,56 @@ async function listCustomItems({ queryText = '', page = 1, limit = 50, filterMod
|
||||
sourceGameName: row.game_name || row.game_id,
|
||||
}))
|
||||
|
||||
const allItems = [...customItems, ...templateItems, ...assetLibraryItems]
|
||||
const baseItems = [...customItems, ...templateItems, ...assetLibraryItems]
|
||||
const groupedBySrc = new Map()
|
||||
for (const item of baseItems) {
|
||||
if (!item?.src) continue
|
||||
if (!groupedBySrc.has(item.src)) groupedBySrc.set(item.src, [])
|
||||
groupedBySrc.get(item.src).push(item)
|
||||
}
|
||||
|
||||
const allItems = baseItems
|
||||
.map((item) => {
|
||||
const siblings = groupedBySrc.get(item.src) || [item]
|
||||
const linkedGames = new Map()
|
||||
let userReferenceCount = 0
|
||||
let templateReferenceCount = 0
|
||||
let assetReferenceCount = 0
|
||||
|
||||
siblings.forEach((entry) => {
|
||||
if (entry.sourceType === 'user') userReferenceCount += 1
|
||||
else if (entry.isAssetLibraryItem) assetReferenceCount += 1
|
||||
else templateReferenceCount += 1
|
||||
;(entry.linkedGames || []).forEach((game) => {
|
||||
if (game?.id) linkedGames.set(game.id, game)
|
||||
})
|
||||
})
|
||||
|
||||
return {
|
||||
...item,
|
||||
sharedReferenceCount: siblings.length,
|
||||
sharedUserReferenceCount: userReferenceCount,
|
||||
sharedTemplateReferenceCount: templateReferenceCount,
|
||||
sharedAssetReferenceCount: assetReferenceCount,
|
||||
sharedLinkedGameCount: linkedGames.size,
|
||||
sharedEntries: siblings
|
||||
.slice()
|
||||
.sort((a, b) => Number(b.createdAt || 0) - Number(a.createdAt || 0))
|
||||
.map((entry) => ({
|
||||
id: entry.id,
|
||||
label: entry.label,
|
||||
sourceLabel: entry.sourceLabel,
|
||||
sourceType: entry.sourceType,
|
||||
ownerName: entry.ownerName,
|
||||
createdAt: entry.createdAt,
|
||||
sourceGameId: entry.sourceGameId || '',
|
||||
sourceGameName: entry.sourceGameName || '',
|
||||
usageCount: entry.usageCount || 0,
|
||||
linkedGames: entry.linkedGames || [],
|
||||
isAssetLibraryItem: !!entry.isAssetLibraryItem,
|
||||
})),
|
||||
}
|
||||
})
|
||||
.filter((item) => {
|
||||
switch (filterMode) {
|
||||
case 'user':
|
||||
|
||||
Reference in New Issue
Block a user