From 3c9bbf770c0646c9f2dea3e11a3712a9b0dd026b Mon Sep 17 00:00:00 2001 From: WBHarry Date: Sun, 23 Nov 2025 13:07:18 +0100 Subject: [PATCH] Improved item-identicial check --- module/applications/sheets/api/base-actor.mjs | 5 ++--- module/helpers/utils.mjs | 8 ++++++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/module/applications/sheets/api/base-actor.mjs b/module/applications/sheets/api/base-actor.mjs index c61c6b53..348ffa99 100644 --- a/module/applications/sheets/api/base-actor.mjs +++ b/module/applications/sheets/api/base-actor.mjs @@ -1,3 +1,4 @@ +import { itemIsIdentical } from '../../../helpers/utils.mjs'; import DHBaseActorSettings from './actor-setting.mjs'; import DHApplicationMixin from './application-mixin.mjs'; @@ -248,9 +249,7 @@ export default class DHBaseActorSheet extends DHApplicationMixin(ActorSheetV2) { }); } - const existingItem = this.document.items.find( - x => x._stats.compendiumSource === actorItem._stats.compendiumSource - ); + const existingItem = this.document.items.find(x => itemIsIdentical(x, dropDocument)); if (existingItem) { cancel = true; await existingItem.update({ diff --git a/module/helpers/utils.mjs b/module/helpers/utils.mjs index f1bec45c..c0ca20f9 100644 --- a/module/helpers/utils.mjs +++ b/module/helpers/utils.mjs @@ -437,3 +437,11 @@ export function shuffleArray(array) { return array; } + +export function itemIsIdentical(a, b) { + const compendiumSource = a._stats.compendiumSource === b._stats.compendiumSource; + const name = a.name === b.name; + const description = a.system.description === b.system.description; + + return compendiumSource && name & description; +}