diff --git a/daggerheart.mjs b/daggerheart.mjs index c9a6b54e..7bbdd947 100644 --- a/daggerheart.mjs +++ b/daggerheart.mjs @@ -305,3 +305,6 @@ Hooks.on('moveToken', async (movedToken, data) => { await effect.value.update({ disabled: effect.disabled }); } }); + +Hooks.on("renderCompendiumDirectory", (app, html) => applications.ui.ItemBrowser.injectSidebarButton(html)); +Hooks.on("renderDocumentDirectory", (app, html) => applications.ui.ItemBrowser.injectSidebarButton(html)); diff --git a/module/applications/ui/itemBrowser.mjs b/module/applications/ui/itemBrowser.mjs index 0c0d4142..6b390738 100644 --- a/module/applications/ui/itemBrowser.mjs +++ b/module/applications/ui/itemBrowser.mjs @@ -472,4 +472,45 @@ export class ItemBrowser extends HandlebarsApplicationMixin(ApplicationV2) { _canDragStart() { return true; } + + static injectSidebarButton(html) { + if(!game.user.isGM) return; + const sectionId = html.dataset.tab, + basePresets = { + compendium: 'daggerheart' + }, + menus = { + actors: { + ...basePresets, + folder: "adversaries", + render: { + folders: ["adversaries", "environments"] + } + }, + items: { + ...basePresets, + folder: "equipments", + render: { + noFolder: true + } + }, + compendium: {} + }; + + if(Object.keys(menus).includes(sectionId)) { + const headerActions = html.querySelector(".header-actions"); + + const button = document.createElement("button"); + button.type = "button"; + button.classList.add("open-compendium-browser"); + button.innerHTML = ` + + ${game.i18n.localize("DAGGERHEART.UI.Tooltip.compendiumBrowser")} + `; + // button.addEventListener("click", event => (new ItemBrowser({ presets: menus[sectionId] })).render({ force: true })); + button.addEventListener("click", event => ui.compendiumBrowser?.render({ force: true, presets: menus[sectionId] })); + + headerActions.append(button); + } + } }