Add: handle color scheme

This commit is contained in:
eight 2019-06-26 01:03:53 +08:00
parent 04b546034b
commit 831d1b6fc3
2 changed files with 21 additions and 7 deletions

View File

@ -38,18 +38,21 @@ const colorScheme = (() => {
}
function shouldIncludeStyle(style) {
if (style.preferScheme === 'always') {
const isDark = style.preferScheme === 'dark';
const isLight = style.preferScheme === 'light';
if (!isDark && !isLight) {
return true;
}
if (prefs.get('schemeSwitcher.enabled') === 'never') {
const switcherState = prefs.get('schemeSwitcher.enabled');
if (switcherState === 'never') {
return true;
}
if (prefs.get('schemeSwitcher.enabled') === 'system') {
return systemPreferDark && style.preferScheme === 'dark' ||
!systemPreferDark && style.preferScheme === 'light';
if (switcherState === 'system') {
return systemPreferDark && isDark ||
!systemPreferDark && isLight;
}
return timePreferDark && style.preferScheme === 'dark' ||
!timePreferDark && style.preferScheme === 'light';
return timePreferDark && isDark ||
!timePreferDark && isLight;
}
function updateSystemPreferDark() {

View File

@ -61,6 +61,7 @@ const styleManager = (() => {
};
handleLivePreviewConnections();
handleColorScheme();
return ensurePrepared({
get,
@ -81,6 +82,16 @@ const styleManager = (() => {
removeInclusion
});
function handleColorScheme() {
colorScheme.onChange(() => {
for (const {data} of styles.values()) {
if (data.preferScheme === 'dark' || data.preferScheme === 'light') {
broadcastStyleUpdated(data, 'colorScheme', undefined, false);
}
}
});
}
function handleLivePreviewConnections() {
chrome.runtime.onConnect.addListener(port => {
if (port.name !== 'livePreview') {