[Fix] quirks involving expanding items and hovering over them (#2033)
Some checks failed
Project CI / build (24.x) (push) Has been cancelled

This commit is contained in:
Carlos Fernandez 2026-06-24 17:37:00 -04:00 committed by GitHub
parent 2c1f52413d
commit 1ebbad4797
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 163 additions and 161 deletions

View file

@ -603,7 +603,7 @@ export default function DHApplicationMixin(Base) {
const doc = await fromUuid(itemUuid);
//get inventory-item description element
const descriptionElement = el.querySelector('.invetory-description');
const descriptionElement = el.querySelector('.inventory-description');
if (!doc || !descriptionElement) continue;
// localize the description (idk if it's still necessary)

View file

@ -54,6 +54,10 @@ export default class DHBaseAction extends ActionMixin(foundry.abstract.DataModel
return {};
}
get hasDescription() {
return Boolean(this.description);
}
/**
* Create a Map containing each Action step based on fields define in schema. Ordered by Fields order property.
*

View file

@ -52,6 +52,10 @@ export default class DHArmor extends AttachableItem {
);
}
get itemFeatures() {
return this.armorFeatures;
}
/**@inheritdoc */
async getDescriptionData() {
const baseDescription = this.description;
@ -169,8 +173,4 @@ export default class DHArmor extends AttachableItem {
const labels = [`${game.i18n.localize('DAGGERHEART.ITEMS.Armor.baseScore')}: ${this.armor.max}`];
return labels;
}
get itemFeatures() {
return this.armorFeatures;
}
}

View file

@ -113,6 +113,10 @@ export default class DHWeapon extends AttachableItem {
);
}
get itemFeatures() {
return this.weaponFeatures;
}
/**@inheritdoc */
async getDescriptionData() {
const baseDescription = this.description;
@ -269,8 +273,4 @@ export default class DHWeapon extends AttachableItem {
return labels;
}
get itemFeatures() {
return this.weaponFeatures;
}
}

View file

@ -65,6 +65,10 @@ export default class DhActiveEffect extends foundry.documents.ActiveEffect {
);
}
get hasDescription() {
return Boolean(this.description);
}
/* -------------------------------------------- */
/* Event Handlers */
/* -------------------------------------------- */

View file

@ -89,6 +89,10 @@ export default class DHItem extends foundry.documents.Item {
return !pack?.locked && this.isOwner && isValidType && hasActions;
}
get hasDescription() {
return Boolean(this.system.description) || Boolean(this.system.itemFeatures?.length);
}
/** @inheritdoc */
static async createDialog(data = {}, createOptions = {}, options = {}) {
const { folders, types, template, context = {}, ...dialogOptions } = options;

View file

@ -43,36 +43,26 @@
}
}
.item-main {
border-radius: 5px;
padding: 2px;
margin: -2px;
}
&:hover {
.inventory-item-header .item-label .item-name .expanded-icon {
margin-left: 10px;
display: inline-block;
}
&:has(.inventory-item-content.extensible) {
.inventory-item-header,
.inventory-item-content {
.item-main {
background: light-dark(@dark-blue-40, @golden-40);
}
}
&:has(.inventory-item-content.extended) {
.inventory-item-header .item-label .item-name .expanded-icon {
display: none;
}
}
}
&:has(.inventory-item-content.extensible) {
.inventory-item-header {
border-radius: 5px 5px 0 0;
}
.inventory-item-content {
border-radius: 0 0 5px 5px;
}
}
&:not(:has(.inventory-item-content.extensible)) .inventory-item-header {
border-radius: 5px;
}
}
.inventory-item-header,
@ -171,7 +161,7 @@
grid-template-rows: 1fr;
padding-top: 4px;
}
.invetory-description {
.inventory-description {
overflow: hidden;
h1 {

View file

@ -25,7 +25,8 @@ Parameters:
data-type="{{type}}" data-item-type="{{item.type}}"
data-item-uuid="{{item.uuid}}" data-no-compendium-edit="{{noCompendiumEdit}}"
>
<div class="inventory-item-header {{#if hideContextMenu}}padded{{/if}}" {{#unless noExtensible}}data-action="toggleExtended" {{/unless}}>
<div class="item-main">
<div class="inventory-item-header{{#if hideContextMenu}} padded{{/if}}" {{#unless (or noExtensible (not item.hasDescription))}}data-action="toggleExtended" {{/unless}}>
{{!-- Image --}}
<div class="img-portait" draggable="true"
{{#unless (eq showActions false)}}data-action='{{ifThen item.usable "useItem" (ifThen (hasProperty item "toChat" ) "toChat" "editDoc" ) }}'{{/unless}}
@ -43,18 +44,16 @@ Parameters:
{{!-- Name & Tags --}}
<div class="item-label" draggable="true">
{{!-- Item Name --}}
<span class="item-name">{{localize item.name}} {{#unless (or noExtensible (not item.system.description))}}<span class="expanded-icon"><i class="fa-solid fa-expand"></i></span>{{/unless}}</span>
<span class="item-name">{{localize item.name}} {{#unless (or noExtensible (not item.hasDescription))}}<span class="expanded-icon"><i class="fa-solid fa-expand"></i></span>{{/unless}}</span>
{{!-- Tags Start --}}
{{#if (not hideTags)}}
{{#> "systems/daggerheart/templates/sheets/global/partials/item-tags.hbs" item}}
{{#if (eq ../type 'feature')}}
{{#if (and system.featureForm (ne @root.document.type "character"))}}
{{#if (and (eq ../type 'feature') system.featureForm (ne @root.document.type "character"))}}
<div class="tag feature-form">
<span class="recall-value">{{localize (concat "DAGGERHEART.CONFIG.FeatureForm." system.featureForm)}}</span>
</div>
{{/if}}
{{/if}}
{{/ "systems/daggerheart/templates/sheets/global/partials/item-tags.hbs"}}
{{/if}}
@ -131,10 +130,11 @@ Parameters:
</div>
{{/unless}}
</div>
<div class="inventory-item-content{{#unless noExtensible}} extensible{{/unless}}">
{{!-- Description --}}
{{#unless hideDescription}}
<div class="invetory-description"></div>
<div class="inventory-item-content{{#unless (or noExtensible (not item.hasDescription))}} extensible{{/unless}}">
{{!-- Description --}}
<div class="inventory-description"></div>
</div>
{{/unless}}
</div>
{{!-- Dice Resource --}}