From b9739470708c0a7e0e2fd5678096a7bba6fff25c Mon Sep 17 00:00:00 2001 From: KoloMl Date: Sat, 14 Mar 2026 20:03:25 +0400 Subject: [PATCH] Fixed presets not refreshing after tag loading/clearing --- src/content/components/events/booru-events.ts | 1 + src/content/components/philomena/TagsForm.ts | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/content/components/events/booru-events.ts b/src/content/components/events/booru-events.ts index 0bf2742..236cc66 100644 --- a/src/content/components/events/booru-events.ts +++ b/src/content/components/events/booru-events.ts @@ -6,6 +6,7 @@ export const EVENT_RELOAD = 'reload'; */ export interface ReloadCustomOptions { skipTagColorRefresh?: boolean; + skipTagRefresh?: boolean; } export interface BooruEventsMap { diff --git a/src/content/components/philomena/TagsForm.ts b/src/content/components/philomena/TagsForm.ts index b880919..7a27cdc 100644 --- a/src/content/components/philomena/TagsForm.ts +++ b/src/content/components/philomena/TagsForm.ts @@ -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) { - if (event.detail?.skipTagColorRefresh) { - return; + if (!event.detail?.skipTagColorRefresh) { + this.refreshTagColors(); } - this.refreshTagColors(); + if (!event.detail?.skipTagRefresh) { + this.#refreshTagsListForPresets(); + } } static watchForEditors() {