mirror of
https://github.com/discourse/discourse.git
synced 2025-06-24 16:15:36 +08:00
DEV: Add app event triggers for interface color changes (#31558)
This commit is contained in:
@ -7,6 +7,7 @@ const DARK = "dark";
|
|||||||
const LIGHT = "light";
|
const LIGHT = "light";
|
||||||
|
|
||||||
export default class InterfaceColor extends Service {
|
export default class InterfaceColor extends Service {
|
||||||
|
@service appEvents;
|
||||||
@service siteSettings;
|
@service siteSettings;
|
||||||
@service session;
|
@service session;
|
||||||
@tracked forcedColorMode;
|
@tracked forcedColorMode;
|
||||||
@ -68,6 +69,7 @@ export default class InterfaceColor extends Service {
|
|||||||
darkStylesheet.media = "none";
|
darkStylesheet.media = "none";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
this.appEvents.trigger("interface-color:changed", LIGHT);
|
||||||
}
|
}
|
||||||
|
|
||||||
forceDarkMode({ flipStylesheets = true } = {}) {
|
forceDarkMode({ flipStylesheets = true } = {}) {
|
||||||
@ -85,6 +87,7 @@ export default class InterfaceColor extends Service {
|
|||||||
darkStylesheet.media = "all";
|
darkStylesheet.media = "all";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
this.appEvents.trigger("interface-color:changed", DARK);
|
||||||
}
|
}
|
||||||
|
|
||||||
removeColorModeOverride() {
|
removeColorModeOverride() {
|
||||||
@ -94,11 +97,13 @@ export default class InterfaceColor extends Service {
|
|||||||
const lightStylesheet = this.#lightColorsStylesheet();
|
const lightStylesheet = this.#lightColorsStylesheet();
|
||||||
if (lightStylesheet) {
|
if (lightStylesheet) {
|
||||||
lightStylesheet.media = "(prefers-color-scheme: light)";
|
lightStylesheet.media = "(prefers-color-scheme: light)";
|
||||||
|
this.appEvents.trigger("interface-color:changed", LIGHT);
|
||||||
}
|
}
|
||||||
|
|
||||||
const darkStylesheet = this.#darkColorsStylesheet();
|
const darkStylesheet = this.#darkColorsStylesheet();
|
||||||
if (darkStylesheet) {
|
if (darkStylesheet) {
|
||||||
darkStylesheet.media = "(prefers-color-scheme: dark)";
|
darkStylesheet.media = "(prefers-color-scheme: dark)";
|
||||||
|
this.appEvents.trigger("interface-color:changed", DARK);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user