From 050521f3a938948c636f86aa79094804737e2b46 Mon Sep 17 00:00:00 2001 From: Javier Godoy <11554739+javier-godoy@users.noreply.github.com> Date: Thu, 9 Jan 2025 11:15:33 -0300 Subject: [PATCH] feat: add support for applying theme in iframe --- .../com/flowingcode/vaadin/addons/demo/TabbedDemo.java | 9 ++++++++- 1 file changed, 8 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 5397b2b..5e775bb 100644 --- a/src/main/java/com/flowingcode/vaadin/addons/demo/TabbedDemo.java +++ b/src/main/java/com/flowingcode/vaadin/addons/demo/TabbedDemo.java @@ -357,7 +357,14 @@ public static void applyTheme(Element element, boolean useDarkTheme) { public static void applyTheme(Element element, String theme) { VaadinSession.getCurrent().setAttribute(THEME_NAME, theme); - element.executeJs("document.body.setAttribute('theme', $0);", theme); + String script; + if (element.getTag().equalsIgnoreCase("iframe")) { + script = "this.contentWindow.document.body.setAttribute('theme', $0)"; + } else { + script = "document.body.setAttribute('theme', $0);"; + } + + element.executeJs(script, theme); Component c = element.getComponent().get(); collectThemeChangeObservers(c).forEach(observer -> observer.onThemeChange(theme));