From 59cdb6e8c6bd65468cffc3e6fc0936a0e93d1364 Mon Sep 17 00:00:00 2001 From: Sam Atkins Date: Tue, 9 Apr 2024 10:40:06 +0100 Subject: [PATCH] Broadcast when theme changes --- src/services/ThemeService.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/services/ThemeService.js b/src/services/ThemeService.js index afd6c8414..10921b3ef 100644 --- a/src/services/ThemeService.js +++ b/src/services/ThemeService.js @@ -31,7 +31,11 @@ const default_values = { }; export class ThemeService extends Service { + #broadcastService; + async _init () { + this.#broadcastService = globalThis.services.get('broadcast'); + this.state = { sat: 41.18, hue: 210, @@ -113,6 +117,16 @@ export class ThemeService extends Service { this.root.style.setProperty('--primary-saturation', s.sat + '%'); this.root.style.setProperty('--primary-lightness', s.lig + '%'); this.root.style.setProperty('--primary-alpha', s.alpha); + + // TODO: Should we debounce this to reduce traffic? + this.#broadcastService.sendBroadcast('themeChanged', { + palette: { + primaryHue: s.hue, + primarySaturation: s.sat + '%', + primaryLightness: s.lig + '%', + primaryAlpha: s.alpha, + }, + }, { sendToNewAppInstances: true }); } save_ () {