Skip to content

Commit 9ead0e9

Browse files
committed
fix: render the active effect sheet when middle-click for all sheets
1 parent 5f324be commit 9ead0e9

File tree

4 files changed

+72
-12
lines changed

4 files changed

+72
-12
lines changed

module/documents/items/classFeature/class-feature-sheet.mjs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,25 @@ export class FUClassFeatureSheet extends ItemSheet {
134134
activateListeners(html) {
135135
super.activateListeners(html);
136136

137+
// Render the active effect sheet for viewing/editing when middle-clicking
138+
html.find('.effect').mouseup((ev) => {
139+
if (ev.button === 1 && !$(ev.target).hasClass('effect-control')) {
140+
const li = $(ev.currentTarget);
141+
const simulatedEvent = {
142+
preventDefault: () => {},
143+
currentTarget: {
144+
dataset: { action: 'edit' },
145+
closest: () => li[0],
146+
classList: {
147+
contains: (cls) => li.hasClass(cls),
148+
},
149+
},
150+
};
151+
152+
onManageActiveEffect(simulatedEvent, this.item);
153+
}
154+
});
155+
137156
html.find('.regenerate-fuid-button').click(async (event) => {
138157
event.preventDefault();
139158

module/documents/items/optionalFeature/optional-feature-sheet.mjs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,25 @@ export class FUOptionalFeatureSheet extends ItemSheet {
130130
activateListeners(html) {
131131
super.activateListeners(html);
132132

133+
// Render the active effect sheet for viewing/editing when middle-clicking
134+
html.find('.effect').mouseup((ev) => {
135+
if (ev.button === 1 && !$(ev.target).hasClass('effect-control')) {
136+
const li = $(ev.currentTarget);
137+
const simulatedEvent = {
138+
preventDefault: () => {},
139+
currentTarget: {
140+
dataset: { action: 'edit' },
141+
closest: () => li[0],
142+
classList: {
143+
contains: (cls) => li.hasClass(cls),
144+
},
145+
},
146+
};
147+
148+
onManageActiveEffect(simulatedEvent, this.item);
149+
}
150+
});
151+
133152
html.find('.regenerate-fuid-button').click(async (event) => {
134153
event.preventDefault();
135154

module/sheets/actor-standard-sheet.mjs

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import { GroupCheck } from '../helpers/group-check.mjs';
77
import { StudyRollHandler } from '../helpers/study-roll.mjs';
88
import { SETTINGS } from '../settings.js';
99
import { FU, SYSTEM } from '../helpers/config.mjs';
10-
import { FUActor } from '../documents/actors/actor.mjs';
1110

1211
const TOGGLEABLE_STATUS_EFFECT_IDS = ['crisis', 'slow', 'dazed', 'enraged', 'dex-up', 'mig-up', 'ins-up', 'wlp-up', 'guard', 'weak', 'shaken', 'poisoned', 'dex-down', 'mig-down', 'ins-down', 'wlp-down'];
1312

@@ -616,20 +615,23 @@ export class FUStandardActorSheet extends ActorSheet {
616615
}
617616
});
618617

619-
// Open the active effect dialog when middle-clicking on an effect
618+
// Render the active effect sheet for viewing/editing when middle-clicking
620619
html.find('.effect').mouseup((ev) => {
620+
const owner = this.actor;
621621
if (ev.button === 1 && !$(ev.target).hasClass('effect-control')) {
622622
const li = $(ev.currentTarget);
623-
const effectId = li.data('effectId');
624-
const owner = this.actor;
625-
let effect;
626-
if (owner instanceof FUActor) {
627-
effect = Array.from(owner.allApplicableEffects()).find((value) => value.id === effectId);
628-
} else {
629-
effect = owner.effects.get(effectId);
630-
}
631-
// Render the sheet for the active effect
632-
effect.sheet.render(true);
623+
const simulatedEvent = {
624+
preventDefault: () => {},
625+
currentTarget: {
626+
dataset: { action: 'edit' },
627+
closest: () => li[0],
628+
classList: {
629+
contains: (cls) => li.hasClass(cls),
630+
},
631+
},
632+
};
633+
634+
onManageActiveEffect(simulatedEvent, owner);
633635
}
634636
});
635637

module/sheets/item-sheet.mjs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,26 @@ export class FUItemSheet extends ItemSheet {
121121
}
122122
});
123123

124+
// Render the active effect sheet for viewing/editing when middle-clicking
125+
html.find('.effect').mouseup((ev) => {
126+
if (ev.button === 1 && !$(ev.target).hasClass('effect-control')) {
127+
const li = $(ev.currentTarget);
128+
const simulatedEvent = {
129+
preventDefault: () => {},
130+
currentTarget: {
131+
dataset: { action: 'edit' },
132+
closest: () => li[0],
133+
classList: {
134+
contains: (cls) => li.hasClass(cls),
135+
},
136+
},
137+
};
138+
139+
onManageActiveEffect(simulatedEvent, this.item);
140+
}
141+
});
142+
143+
// -------------------------------------------------------------
124144
// Everything below here is only needed if the sheet is editable
125145
if (!this.isEditable) return;
126146

0 commit comments

Comments
 (0)