From 395473c1d928e9789ede0396eb789b279264279d Mon Sep 17 00:00:00 2001 From: Javier Godoy <11554739+javier-godoy@users.noreply.github.com> Date: Tue, 27 Jan 2026 10:14:09 -0300 Subject: [PATCH 1/2] refactor: deduplicate theme-setting script generation --- .../java/com/flowingcode/vaadin/addons/demo/TabbedDemo.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/flowingcode/vaadin/addons/demo/TabbedDemo.java b/src/main/java/com/flowingcode/vaadin/addons/demo/TabbedDemo.java index e424cbe..efc6240 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/demo/TabbedDemo.java +++ b/src/main/java/com/flowingcode/vaadin/addons/demo/TabbedDemo.java @@ -335,11 +335,13 @@ public static void applyThemeAttribute(Element element, String theme) { String script; if (element.getTag().equalsIgnoreCase("iframe")) { - script = "this.contentWindow.document.documentElement.setAttribute('theme', $0)"; + script = "let e = this.contentWindow.document.documentElement;"; } else { - script = "document.documentElement.setAttribute('theme', $0);"; + script = "let e = document.documentElement;"; } + script += "e.setAttribute('theme', $0);"; + element.executeJs(script, theme); Component c = element.getComponent().get(); From 753b891ce768165f6872420dca16186a8297438d Mon Sep 17 00:00:00 2001 From: Javier Godoy <11554739+javier-godoy@users.noreply.github.com> Date: Tue, 27 Jan 2026 10:16:09 -0300 Subject: [PATCH 2/2] fix: update color-scheme when switching themes --- .../java/com/flowingcode/vaadin/addons/demo/TabbedDemo.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/flowingcode/vaadin/addons/demo/TabbedDemo.java b/src/main/java/com/flowingcode/vaadin/addons/demo/TabbedDemo.java index efc6240..311bd32 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/demo/TabbedDemo.java +++ b/src/main/java/com/flowingcode/vaadin/addons/demo/TabbedDemo.java @@ -340,7 +340,10 @@ public static void applyThemeAttribute(Element element, String theme) { script = "let e = document.documentElement;"; } - script += "e.setAttribute('theme', $0);"; + script += """ + e.setAttribute('theme', $0); + e.style.colorScheme = $0; + """; element.executeJs(script, theme);