This commit is contained in:
WBHarry 2025-09-21 16:16:54 +02:00
parent 5a5e925e8b
commit 89b398c63b
3 changed files with 27 additions and 4 deletions

View file

@ -9,6 +9,7 @@ export default class CountdownEdit extends HandlebarsApplicationMixin(Applicatio
this.data = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Countdowns);
this.editingCountdowns = new Set();
this.currentEditCountdown = null;
}
get title() {
@ -62,6 +63,22 @@ export default class CountdownEdit extends HandlebarsApplicationMixin(Applicatio
return context;
}
/** @override */
async _postRender(_context, _options) {
if (this.currentEditCountdown) {
setTimeout(() => {
const input = this.element.querySelector(
`.countdown-edit-container[data-id="${this.currentEditCountdown}"] input`
);
if (input) {
input.focus();
input.selectionStart = input.value.length + 1;
this.currentEditCountdown = null;
}
}, 100);
}
}
canPerformEdit() {
if (game.user.isGM) return true;
@ -103,8 +120,11 @@ export default class CountdownEdit extends HandlebarsApplicationMixin(Applicatio
}
static #addCountdown() {
const id = foundry.utils.randomID();
this.editingCountdowns.add(id);
this.currentEditCountdown = id;
this.updateSetting({
[`countdowns.${foundry.utils.randomID()}`]: DhCountdown.defaultCountdown()
[`countdowns.${id}`]: DhCountdown.defaultCountdown()
});
}
@ -125,7 +145,10 @@ export default class CountdownEdit extends HandlebarsApplicationMixin(Applicatio
const isEditing = this.editingCountdowns.has(countdownId);
if (isEditing) this.editingCountdowns.delete(countdownId);
else this.editingCountdowns.add(countdownId);
else {
this.editingCountdowns.add(countdownId);
this.currentEditCountdown = countdownId;
}
this.render();
}

View file

@ -21,7 +21,7 @@
right: 64px;
transition:
right ease 250ms,
all var(--ui-fade-duration) ease,
opacity var(--ui-fade-duration) ease,
opacity var(--ui-fade-duration);
.window-title {

View file

@ -18,7 +18,7 @@
<div class="edit-content">
{{#each countdowns as | countdown id | }}
<div class="countdown-edit-container {{#unless countdown.editing}}viewing{{/unless}}">
<div class="countdown-edit-container {{#unless countdown.editing}}viewing{{/unless}}" data-id="{{id}}">
<a data-action="editCountdownImage" id="{{id}}"><img src="{{countdown.img}}" /></a>
{{#unless countdown.editing}}
<div class="countdown-edit-text">