From 21a797ca1a48e934cfc15765695971c503ee976c Mon Sep 17 00:00:00 2001 From: Paola De Bartolo Date: Fri, 15 May 2026 17:07:10 -0300 Subject: [PATCH] fix: update overflow item selection state immediately on click Close #27 --- .../frontend/src/fc-days-of-week-selector.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/main/resources/META-INF/resources/frontend/src/fc-days-of-week-selector.ts b/src/main/resources/META-INF/resources/frontend/src/fc-days-of-week-selector.ts index 6f3d744..0a25915 100644 --- a/src/main/resources/META-INF/resources/frontend/src/fc-days-of-week-selector.ts +++ b/src/main/resources/META-INF/resources/frontend/src/fc-days-of-week-selector.ts @@ -198,14 +198,15 @@ export class DaysOfWeekSelector extends ResizeMixin(ThemableMixin(LitElement)) { clonedButton._originalButton = originalButton; clonedButton.removeAttribute("slot"); clonedButton.style.display = ''; - clonedButton.addEventListener('click', ev => { + clonedButton.addEventListener('click', () => { // Update server side button component state clonedButton._originalButton.$server.toggleState(); - if (clonedButton.getAttribute("theme")) { - clonedButton.removeAttribute("theme") - } else { - clonedButton.setAttribute("theme", "primary"); - } + // Toggle only the "primary" token, preserving any other theme tokens + const themes = new Set((clonedButton.getAttribute('theme') || '').split(/\s+/).filter(Boolean)); + themes.has('primary') ? themes.delete('primary') : themes.add('primary'); + themes.size + ? clonedButton.setAttribute('theme', [...themes].join(' ')) + : clonedButton.removeAttribute('theme'); // Notify value change to DayOfWeekSelector component this.dispatchEvent(new CustomEvent('change', {bubbles: true})); });