deduplicate and simplify

This commit is contained in:
psitacus 2025-07-09 01:05:44 -06:00
parent 598bf733f8
commit b269e58585
4 changed files with 37 additions and 44 deletions

View file

@ -656,31 +656,14 @@ export default class CharacterSheet extends DHBaseActorSheet {
}
async _onDragStart(event) {
const target = event.target || event.currentTarget;
const itemElement = target.closest('[data-item-id]');
const item = this.getItem(event);
if (itemElement) {
const itemId = itemElement.dataset.itemId;
const itemType = itemElement.dataset.type;
let item;
if (itemType === 'effect') {
item = this.document.effects.get(itemId);
} else {
item = this.document.items.get(itemId);
}
if (item) {
const dragData = {
type: item.documentName,
uuid: item.uuid
};
event.dataTransfer.setData('text/plain', JSON.stringify(dragData));
}
}
const dragData = {
type: item.documentName,
uuid: item.uuid
};
event.dataTransfer.setData('text/plain', JSON.stringify(dragData));
super._onDragStart(event);
}

View file

@ -1,5 +1,5 @@
import DHBaseItemSheet from '../api/base-item.mjs';
import { copyAttachmentEffectsToActor, removeAttachmentEffectsFromActor } from '../../../helpers/attachmentHelper.mjs';
import { copyAttachmentEffectsToActor, removeAttachmentFromItem } from '../../../helpers/attachmentHelper.mjs';
export default class ArmorSheet extends DHBaseItemSheet {
/**@inheritdoc */
@ -129,16 +129,9 @@ export default class ArmorSheet extends DHBaseItemSheet {
* @param {HTMLElement} target - The clicked element
*/
static async #removeAttachment(event, target) {
const uuid = target.dataset.uuid;
const currentAttached = this.document.system.attached;
await this.document.update({
'system.attached': currentAttached.filter(attachedUuid => attachedUuid !== uuid)
});
await removeAttachmentEffectsFromActor({
await removeAttachmentFromItem({
parentItem: this.document,
attachedUuid: uuid,
attachedUuid: target.dataset.uuid,
parentType: 'armor'
});
}

View file

@ -1,5 +1,5 @@
import DHBaseItemSheet from '../api/base-item.mjs';
import { copyAttachmentEffectsToActor, removeAttachmentEffectsFromActor } from '../../../helpers/attachmentHelper.mjs';
import { copyAttachmentEffectsToActor, removeAttachmentFromItem } from '../../../helpers/attachmentHelper.mjs';
export default class WeaponSheet extends DHBaseItemSheet {
/**@inheritdoc */
@ -130,16 +130,9 @@ export default class WeaponSheet extends DHBaseItemSheet {
* @param {HTMLElement} target - The clicked element
*/
static async #removeAttachment(event, target) {
const uuid = target.dataset.uuid;
const currentAttached = this.document.system.attached;
await this.document.update({
'system.attached': currentAttached.filter(attachedUuid => attachedUuid !== uuid)
});
await removeAttachmentEffectsFromActor({
await removeAttachmentFromItem({
parentItem: this.document,
attachedUuid: uuid,
attachedUuid: target.dataset.uuid,
parentType: 'weapon'
});
}