Fixing using map on Set causing issues. Renamed a few variables to try and make it more clear what type they are

This commit is contained in:
Litasa
2025-09-03 12:32:35 +02:00
committed by Litasa
parent 54aafefcf4
commit 54ae4fdb63
2 changed files with 18 additions and 18 deletions

View File

@@ -66,7 +66,7 @@ export default class HooksL5r5e {
} }
} }
} }
game.settings.set(CONFIG.l5r5e.namespace, "all-compendium-references", Array.from(references)); game.settings.set(CONFIG.l5r5e.namespace, "all-compendium-references", references);
} }
/** /**
@@ -303,17 +303,17 @@ export default class HooksL5r5e {
} }
// Setup filters // Setup filters
const officialContent = game.settings.get(CONFIG.l5r5e.namespace, "compendium-official-content-for-players"); const officialContentSet = game.settings.get(CONFIG.l5r5e.namespace, "compendium-official-content-for-players");
const unofficialContent = game.settings.get(CONFIG.l5r5e.namespace, "compendium-unofficial-content-for-players"); const unofficialContentSet = game.settings.get(CONFIG.l5r5e.namespace, "compendium-unofficial-content-for-players");
const allCompendiumReferences = game.settings.get(CONFIG.l5r5e.namespace, "all-compendium-references") const allCompendiumReferencesSet = game.settings.get(CONFIG.l5r5e.namespace, "all-compendium-references")
const hideEmptySourcesFromPlayers = game.settings.get(CONFIG.l5r5e.namespace, "compendium-hide-empty-sources-from-players"); const hideEmptySourcesFromPlayers = game.settings.get(CONFIG.l5r5e.namespace, "compendium-hide-empty-sources-from-players");
const unavailableSourceForPlayers = allCompendiumReferences.filter((element) => { const unavailableSourceForPlayersSet = new Set([...allCompendiumReferencesSet].filter((element) => {
if (CONFIG.l5r5e.sourceReference[element]) { if (CONFIG.l5r5e.sourceReference[element]) {
return officialContent.size > 0 ? !officialContent.has(element) : false; return officialContentSet.size > 0 ? !officialContentSet.has(element) : false;
} }
return unofficialContent.size > 0 ? !unofficialContent.has(element) : false; return unofficialContentSet.size > 0 ? !unofficialContentSet.has(element) : false;
}); }));
// Create filter function // Create filter function
const applyCompendiumFilter = () => { const applyCompendiumFilter = () => {
@@ -333,7 +333,7 @@ export default class HooksL5r5e {
let shouldShow = true; let shouldShow = true;
// Handle unavailable sources // Handle unavailable sources
if (unavailableSourceForPlayers.has(lineSource)) { if (unavailableSourceForPlayersSet.has(lineSource)) {
if (game.user.isGM) { if (game.user.isGM) {
shouldShow &= true; shouldShow &= true;
$(this) $(this)
@@ -405,33 +405,33 @@ export default class HooksL5r5e {
if (filtersToShow.source) { if (filtersToShow.source) {
// Build the source select // Build the source select
const selectableSources = allCompendiumReferences.map((reference) => ({ const selectableSourcesArray = [...allCompendiumReferencesSet].map((reference) => ({
value: reference, value: reference,
label: CONFIG.l5r5e.sourceReference[reference]?.label ?? reference, label: CONFIG.l5r5e.sourceReference[reference]?.label ?? reference,
translate: true, translate: true,
group: CONFIG.l5r5e.sourceReference[reference]?.type.split(",")[0] ?? "l5r5e.multiselect.sources_categories.others", group: CONFIG.l5r5e.sourceReference[reference]?.type.split(",")[0] ?? "l5r5e.multiselect.sources_categories.others",
disabled: !sourcesInThisCompendium.has(reference) || (!game.user.isGM && unavailableSourceForPlayers.has(reference)) disabled: !sourcesInThisCompendium.has(reference) || (!game.user.isGM && unavailableSourceForPlayersSet.has(reference))
})); }));
const filterSourcesBox = L5r5eHtmlMultiSelectElement.create({ const filterSourcesBox = L5r5eHtmlMultiSelectElement.create({
name: "filter-sources", name: "filter-sources",
options: selectableSources, options: selectableSourcesArray,
localize: true, localize: true,
}); });
header.append(filterSourcesBox.outerHTML); header.append(filterSourcesBox.outerHTML);
$("l5r5e-multi-select").on("change", applyCompendiumFilter); $("l5r5e-multi-select").on("change", applyCompendiumFilter);
// If gm add an extra button to easily filter the content to see the same stuff as a player // If gm add an extra button to easily filter the content to see the same stuff as a player
if (game.user.isGM && unavailableSourceForPlayers.length > 0) { if (game.user.isGM && unavailableSourceForPlayersSet.size > 0) {
const buttonHTML = `<button type="button" class="gm" data-tooltip="${game.i18n.localize('l5r5e.multiselect.player_filter_tooltip')}">` const buttonHTML = `<button type="button" class="gm" data-tooltip="${game.i18n.localize('l5r5e.multiselect.player_filter_tooltip')}">`
+ game.i18n.localize('l5r5e.multiselect.player_filter_label') + game.i18n.localize('l5r5e.multiselect.player_filter_label')
+ '</button>' + '</button>'
const filterPlayerView = allCompendiumReferences const filterPlayerViewArray = [...allCompendiumReferencesSet]
.filter((item) => !unavailableSourceForPlayers.has(item)) .filter((item) => !unavailableSourceForPlayersSet.has(item))
.filter((item) => sourcesInThisCompendium.has(item)); .filter((item) => sourcesInThisCompendium.has(item));
$(buttonHTML).appendTo($(header).find("l5r5e-multi-select")).click(function() { $(buttonHTML).appendTo($(header).find("l5r5e-multi-select")).click(function() {
header.find("l5r5e-multi-select")[0].value = filterPlayerView; header.find("l5r5e-multi-select")[0].value = filterPlayerViewArray;
}); });
} }
} }

View File

@@ -56,8 +56,8 @@ export class BaseItemSheetL5r5e extends foundry.appv1.sheets.ItemSheet {
sheetData.data.system.source_reference.source = game.i18n.localize(label_or_reference); sheetData.data.system.source_reference.source = game.i18n.localize(label_or_reference);
// Translate list of available references // Translate list of available references
const all_references = game.settings.get(CONFIG.l5r5e.namespace, "all-compendium-references"); const all_referencesSet = game.settings.get(CONFIG.l5r5e.namespace, "all-compendium-references");
sheetData.source_references = all_references.map((reference) => { sheetData.source_references = [...all_referencesSet].map((reference) => {
const label_or_reference = CONFIG.l5r5e.sourceReference[reference]?.label ?? reference const label_or_reference = CONFIG.l5r5e.sourceReference[reference]?.label ?? reference
return game.i18n.localize(label_or_reference) return game.i18n.localize(label_or_reference)
}) })