mirror of
https://github.com/zulip/zulip.git
synced 2025-11-16 11:52:01 +00:00
ui_util: Extract listener for change in preferred-color-scheme.
This will further be used for recipient bar colors since they have different colors in dark and light color scheme.
This commit is contained in:
@@ -94,3 +94,18 @@ export async function play_audio(elem: HTMLVideoElement): Promise<void> {
|
||||
blueslip.debug(`Unable to play audio. ${error.name}: ${error.message}`);
|
||||
}
|
||||
}
|
||||
|
||||
export function listener_for_preferred_color_scheme_change(callback: () => void): void {
|
||||
const media_query_list = window.matchMedia("(prefers-color-scheme: dark)");
|
||||
// MediaQueryList.addEventListener is missing in Safari < 14
|
||||
const listener: () => void = () => {
|
||||
if ($(":root").hasClass("color-scheme-automatic")) {
|
||||
callback();
|
||||
}
|
||||
};
|
||||
if ("addEventListener" in media_query_list) {
|
||||
media_query_list.addEventListener("change", listener);
|
||||
} else {
|
||||
(media_query_list as MediaQueryList).addListener(listener);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user