1
0
mirror of https://github.com/koloml/furbooru-tagging-assistant.git synced 2026-03-24 23:02:58 +00:00

Fixed presets not refreshing after tag loading/clearing

This commit is contained in:
2026-03-14 20:03:25 +04:00
parent 7821cebb1b
commit b973947070
2 changed files with 12 additions and 8 deletions

View File

@@ -6,6 +6,7 @@ export const EVENT_RELOAD = 'reload';
*/
export interface ReloadCustomOptions {
skipTagColorRefresh?: boolean;
skipTagRefresh?: boolean;
}
export interface BooruEventsMap {

View File

@@ -42,10 +42,10 @@ export class TagsForm extends BaseComponent {
this.#togglePresetsButton.addEventListener('click', this.#togglePresetsList.bind(this));
this.#presetsList.initialize();
this.#plainEditorTextarea?.addEventListener('input', this.#refreshTagsList.bind(this));
this.#fancyEditorInput?.addEventListener('keydown', this.#refreshTagsList.bind(this));
this.#plainEditorTextarea?.addEventListener('input', this.#refreshTagsListForPresets.bind(this));
this.#fancyEditorInput?.addEventListener('keydown', this.#refreshTagsListForPresets.bind(this));
this.#refreshTagsList();
this.#refreshTagsListForPresets();
on(this.#presetsList, EVENT_PRESET_TAG_CHANGE_APPLIED, this.#onTagChangeRequested.bind(this));
@@ -158,10 +158,10 @@ export class TagsForm extends BaseComponent {
event.preventDefault();
this.#presetsList.toggleVisibility();
this.#refreshTagsList();
this.#refreshTagsListForPresets();
}
#refreshTagsList() {
#refreshTagsListForPresets() {
this.#tagsSet = new Set(
this.#plainEditorTextarea?.value
.split(',')
@@ -219,6 +219,7 @@ export class TagsForm extends BaseComponent {
// Sending that we don't need to refresh the color on this event, since we will do that ourselves later, after
// changes are applied.
skipTagColorRefresh: true,
skipTagRefresh: true,
});
this.#fancyEditorInput.value = tagsListWithChanges;
@@ -232,11 +233,13 @@ export class TagsForm extends BaseComponent {
}
#onPlainEditorReloadRequested(event: CustomEvent<ReloadCustomOptions|null>) {
if (event.detail?.skipTagColorRefresh) {
return;
if (!event.detail?.skipTagColorRefresh) {
this.refreshTagColors();
}
this.refreshTagColors();
if (!event.detail?.skipTagRefresh) {
this.#refreshTagsListForPresets();
}
}
static watchForEditors() {