Skip to content

Commit 80ed259

Browse files
committed
Fix import issue that was losing flag values
1 parent 3fe6627 commit 80ed259

6 files changed

Lines changed: 65 additions & 60 deletions

File tree

src/ts/effect-interface.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ class EffectInterfaceImpl implements EffectInterface {
8181

8282
return (
8383
document?.effects?.some((effect) => {
84-
const isConvenient = Flags.isConvenient(effect);
84+
const isConvenient = Flags.isConvenient(effect) ?? false;
8585
const isEnabled = !effect.disabled;
8686
const isMatchingId = effect.id === effectId;
8787
const isMatchingName = effect.name === effectName;

src/ts/hooks/getHeaderControlsActiveEffectConfig.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ const GetHeaderControlsActiveEffectConfig: Listener = {
2222
const isItem = parent instanceof Item;
2323
const isConvenientItem = Flags.isConvenient(
2424
parent as any,
25-
);
25+
) ?? false;
2626
const isOwner = configTyped.document.isOwner;
2727
const isGM = game.user.isGM;
2828

src/ts/ui/ce-app/convenient-effects-v2.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1343,7 +1343,7 @@ class ConvenientEffectsV2 extends HandlebarsApplicationMixin(
13431343

13441344
if (!folder) return false;
13451345

1346-
return Flags.isViewable(folder);
1346+
return Flags.isViewable(folder) ?? false;
13471347
}
13481348

13491349
#isEffectViewable(li: HTMLElement): boolean {
@@ -1362,7 +1362,7 @@ class ConvenientEffectsV2 extends HandlebarsApplicationMixin(
13621362

13631363
if (!effect) return false;
13641364

1365-
return Flags.isViewable(effect);
1365+
return Flags.isViewable(effect) ?? false;
13661366
}
13671367

13681368
async #setFolderViewable(

src/ts/utils/creates.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ function createConvenientItem({
2626
color,
2727
}: ICreateItemAddOns): PreCreate<ItemSource> {
2828
Flags.setIsConvenient(item, true);
29-
Flags.setIsBackup(item, isBackup);
30-
Flags.setIsViewable(item, isViewable);
29+
Flags.setIsBackup(item, Flags.isBackup(item) ?? isBackup);
30+
Flags.setIsViewable(item, Flags.isViewable(item) ?? isViewable);
3131

3232
if (color) {
3333
Flags.setFolderColor(item, color);
@@ -52,10 +52,10 @@ function createConvenientEffect({
5252
}: ICreateEffectAddOns): PreCreate<ActiveEffectSource> {
5353
Flags.setCeEffectId(effect, createCeEffectId(effect.name));
5454
Flags.setIsConvenient(effect, true);
55-
Flags.setIsBackup(effect, isBackup);
56-
Flags.setIsTemporary(effect, isTemporary);
57-
Flags.setIsViewable(effect, isViewable);
58-
Flags.setIsDynamic(effect, isDynamic);
55+
Flags.setIsBackup(effect, Flags.isBackup(effect) ?? isBackup);
56+
Flags.setIsTemporary(effect, Flags.isTemporary(effect) ?? isTemporary);
57+
Flags.setIsViewable(effect, Flags.isViewable(effect) ?? isViewable);
58+
Flags.setIsDynamic(effect, Flags.isDynamic(effect) ?? isDynamic);
5959

6060
if (nestedEffectIds) {
6161
Flags.setNestedEffectIds(effect, nestedEffectIds);

src/ts/utils/finds.ts

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@ interface FindOptions {
6363
function findFolders({ backup }: FindOptions): Item<null>[] {
6464
return game.items
6565
.filter((folder) => {
66-
return (
67-
Flags.isConvenient(folder) && backup === Flags.isBackup(folder)
68-
);
66+
const isConvenient = Flags.isConvenient(folder) ?? false;
67+
const isBackup = Flags.isBackup(folder) ?? false;
68+
return isConvenient && backup === isBackup;
6969
})
7070
.sort((folderA, folderB) => {
7171
const nameA = folderA.name.toUpperCase(); // ignore upper and lowercase
@@ -87,11 +87,9 @@ function findFolder(
8787
{ backup }: FindOptions,
8888
): Item<null> | undefined {
8989
return game.items.find((folder) => {
90-
return (
91-
folder.id === folderId &&
92-
Flags.isConvenient(folder) &&
93-
backup === Flags.isBackup(folder)
94-
);
90+
const isConvenient = Flags.isConvenient(folder) ?? false;
91+
const isBackup = Flags.isBackup(folder) ?? false;
92+
return folder.id === folderId && isConvenient && backup === isBackup;
9593
});
9694
}
9795

src/ts/utils/flags.ts

Lines changed: 49 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -47,19 +47,16 @@ class Flags {
4747

4848
static isBackup(
4949
document: ActiveEffect<any> | Item<null> | object,
50-
): boolean {
50+
): boolean | undefined {
5151
if (document instanceof ActiveEffect || document instanceof Item) {
52-
return (
53-
(document.getFlag(
54-
MODULE_ID,
55-
this.#KEYS.IS_BACKUP,
56-
) as boolean) ?? false
57-
);
52+
return document.getFlag(MODULE_ID, this.#KEYS.IS_BACKUP) as
53+
| boolean
54+
| undefined;
5855
} else {
5956
return foundry.utils.getProperty(
6057
document,
6158
`flags.${MODULE_ID}.${this.#KEYS.IS_BACKUP}`,
62-
) as boolean;
59+
) as boolean | undefined;
6360
}
6461
}
6562

@@ -208,20 +205,16 @@ class Flags {
208205
*/
209206
static isConvenient(
210207
document: ActiveEffect<any> | Item<null> | object,
211-
): boolean {
208+
): boolean | undefined {
212209
if (document instanceof ActiveEffect || document instanceof Item) {
213-
return (
214-
(document.getFlag(MODULE_ID, this.#KEYS.IS_CONVENIENT) as
215-
| boolean
216-
| undefined) ?? false
217-
);
210+
return document.getFlag(MODULE_ID, this.#KEYS.IS_CONVENIENT) as
211+
| boolean
212+
| undefined;
218213
} else {
219-
return (
220-
(foundry.utils.getProperty(
221-
document,
222-
`flags.${MODULE_ID}.${this.#KEYS.IS_CONVENIENT}`,
223-
) as boolean) ?? false
224-
);
214+
return foundry.utils.getProperty(
215+
document,
216+
`flags.${MODULE_ID}.${this.#KEYS.IS_CONVENIENT}`,
217+
) as boolean | undefined;
225218
}
226219
}
227220

@@ -233,12 +226,19 @@ class Flags {
233226
);
234227
}
235228

236-
static isTemporary(effect: ActiveEffect<any>): boolean {
237-
return (
238-
(effect.getFlag(MODULE_ID, this.#KEYS.IS_TEMPORARY) as
229+
static isTemporary(
230+
effect: ActiveEffect<any> | PreCreate<ActiveEffectSource>,
231+
): boolean | undefined {
232+
if (effect instanceof ActiveEffect) {
233+
return effect.getFlag(MODULE_ID, this.#KEYS.IS_TEMPORARY) as
239234
| boolean
240-
| undefined) ?? false
241-
);
235+
| undefined;
236+
} else {
237+
return foundry.utils.getProperty(
238+
effect,
239+
`flags.${MODULE_ID}.${this.#KEYS.IS_TEMPORARY}`,
240+
) as boolean | undefined;
241+
}
242242
}
243243

244244
static setIsTemporary(
@@ -254,20 +254,16 @@ class Flags {
254254

255255
static isDynamic(
256256
effect: ActiveEffect<any> | PreCreate<ActiveEffectSource>,
257-
): boolean {
257+
): boolean | undefined {
258258
if (effect instanceof ActiveEffect) {
259-
return (
260-
(effect.getFlag(MODULE_ID, this.#KEYS.IS_DYNAMIC) as
261-
| boolean
262-
| undefined) ?? false
263-
);
259+
return effect.getFlag(MODULE_ID, this.#KEYS.IS_DYNAMIC) as
260+
| boolean
261+
| undefined;
264262
} else {
265-
return (
266-
(foundry.utils.getProperty(
267-
effect,
268-
`flags.${MODULE_ID}.${this.#KEYS.IS_DYNAMIC}`,
269-
) as boolean) ?? false
270-
);
263+
return foundry.utils.getProperty(
264+
effect,
265+
`flags.${MODULE_ID}.${this.#KEYS.IS_DYNAMIC}`,
266+
) as boolean | undefined;
271267
}
272268
}
273269

@@ -279,11 +275,22 @@ class Flags {
279275
);
280276
}
281277

282-
static isViewable(document: ActiveEffect<any> | Item<null>): boolean {
283-
return (
284-
(document.getFlag(MODULE_ID, this.#KEYS.IS_VIEWABLE) as boolean) ??
285-
false
286-
);
278+
static isViewable(
279+
document:
280+
| ActiveEffect<any>
281+
| Item<null>
282+
| PreCreate<ActiveEffectSource>,
283+
): boolean | undefined {
284+
if (document instanceof ActiveEffect || document instanceof Item) {
285+
return document.getFlag(MODULE_ID, this.#KEYS.IS_VIEWABLE) as
286+
| boolean
287+
| undefined;
288+
} else {
289+
return foundry.utils.getProperty(
290+
document,
291+
`flags.${MODULE_ID}.${this.#KEYS.IS_VIEWABLE}`,
292+
) as boolean | undefined;
293+
}
287294
}
288295

289296
static async setIsViewable(

0 commit comments

Comments
 (0)