diff --git a/module/applications/settings/homebrewSettings.mjs b/module/applications/settings/homebrewSettings.mjs index 31a7df68..6d36a2b3 100644 --- a/module/applications/settings/homebrewSettings.mjs +++ b/module/applications/settings/homebrewSettings.mjs @@ -122,24 +122,24 @@ export default class DhHomebrewSettings extends HandlebarsApplicationMixin(Appli const icon = await foundry.applications.api.DialogV2.input({ classes: ['daggerheart', 'dh-style', 'change-currency-icon'], content: await foundry.applications.handlebars.renderTemplate( - "systems/daggerheart/templates/settings/homebrew-settings/change-currency-icon.hbs", + 'systems/daggerheart/templates/settings/homebrew-settings/change-currency-icon.hbs', { currentIcon } ), window: { - title: game.i18n.localize("DAGGERHEART.SETTINGS.Homebrew.currency.changeIcon"), - icon: "fa-solid fa-coins" + title: game.i18n.localize('DAGGERHEART.SETTINGS.Homebrew.currency.changeIcon'), + icon: 'fa-solid fa-coins' }, render: (_, dialog) => { - const icon = dialog.element.querySelector(".displayed-icon i"); - const input = dialog.element.querySelector("input"); - const reset = dialog.element.querySelector("button[data-action=reset]"); - input.addEventListener("input", () => { + const icon = dialog.element.querySelector('.displayed-icon i'); + const input = dialog.element.querySelector('input'); + const reset = dialog.element.querySelector('button[data-action=reset]'); + input.addEventListener('input', () => { icon.classList.value = input.value; }); - reset.addEventListener("click", () => { + reset.addEventListener('click', () => { const currencyField = DhHomebrew.schema.fields.currency.fields[type]; const initial = currencyField.fields.icon.getInitialValue(); - input.value = icon.classList.value = initial; + input.value = icon.classList.value = initial; }); }, ok: { @@ -147,10 +147,10 @@ export default class DhHomebrewSettings extends HandlebarsApplicationMixin(Appli } }); - if (icon) { - await this.settings.updateSource({ - [`currency.${type}.icon`]: icon, - }); + if (icon !== null) { + await this.settings.updateSource({ + [`currency.${type}.icon`]: icon + }); this.render(); } } diff --git a/module/data/settings/Homebrew.mjs b/module/data/settings/Homebrew.mjs index da27a73c..6f280cbd 100644 --- a/module/data/settings/Homebrew.mjs +++ b/module/data/settings/Homebrew.mjs @@ -9,7 +9,7 @@ const currencyField = (initial, label, icon) => initial, label }), - icon: new foundry.data.fields.StringField({ required: true, nullable: false, blank: false, initial: icon }), + icon: new foundry.data.fields.StringField({ required: true, nullable: false, blank: true, initial: icon }) }); export default class DhHomebrew extends foundry.abstract.DataModel { @@ -46,10 +46,22 @@ export default class DhHomebrew extends foundry.abstract.DataModel { initial: 'Gold', label: 'DAGGERHEART.SETTINGS.Homebrew.currency.currencyName' }), - coins: currencyField('Coins', 'DAGGERHEART.SETTINGS.Homebrew.currency.coinName', "fa-solid fa-coin-front"), - handfuls: currencyField('Handfuls', 'DAGGERHEART.SETTINGS.Homebrew.currency.handfulName', "fa-solid fa-coins"), - bags: currencyField('Bags', 'DAGGERHEART.SETTINGS.Homebrew.currency.bagName', "fa-solid fa-sack"), - chests: currencyField('Chests', 'DAGGERHEART.SETTINGS.Homebrew.currency.chestName', "fa-solid fa-treasure-chest") + coins: currencyField( + 'Coins', + 'DAGGERHEART.SETTINGS.Homebrew.currency.coinName', + 'fa-solid fa-coin-front' + ), + handfuls: currencyField( + 'Handfuls', + 'DAGGERHEART.SETTINGS.Homebrew.currency.handfulName', + 'fa-solid fa-coins' + ), + bags: currencyField('Bags', 'DAGGERHEART.SETTINGS.Homebrew.currency.bagName', 'fa-solid fa-sack'), + chests: currencyField( + 'Chests', + 'DAGGERHEART.SETTINGS.Homebrew.currency.chestName', + 'fa-solid fa-treasure-chest' + ) }), restMoves: new fields.SchemaField({ longRest: new fields.SchemaField({ @@ -140,7 +152,7 @@ export default class DhHomebrew extends foundry.abstract.DataModel { /** @inheritDoc */ _initializeSource(source, options = {}) { source = super._initializeSource(source, options); - for (const type of ["coins", "handfuls", "bags", "chests"]) { + for (const type of ['coins', 'handfuls', 'bags', 'chests']) { const initial = this.schema.fields.currency.fields[type].getInitialValue(); source.currency[type] = foundry.utils.mergeObject(initial, source.currency[type], { inplace: false }); }