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:
@@ -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;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user