This commit is contained in:
shamoon 2023-09-12 15:33:01 -07:00
parent a421439b15
commit 04b22902f8
2 changed files with 18 additions and 6 deletions

View File

@ -149,7 +149,10 @@ describe('SettingsService', () => {
const addClassSpy = jest.spyOn(settingsService.renderer, 'addClass') const addClassSpy = jest.spyOn(settingsService.renderer, 'addClass')
const removeClassSpy = jest.spyOn(settingsService.renderer, 'removeClass') const removeClassSpy = jest.spyOn(settingsService.renderer, 'removeClass')
const setAttributeSpy = jest.spyOn(settingsService.renderer, 'setAttribute') const setAttributeSpy = jest.spyOn(settingsService.renderer, 'setAttribute')
const removeAttributeSpy = jest.spyOn(settingsService.renderer, 'removeAttribute') const removeAttributeSpy = jest.spyOn(
settingsService.renderer,
'removeAttribute'
)
settingsService.updateAppearanceSettings(true, true, '#fff000') settingsService.updateAppearanceSettings(true, true, '#fff000')
expect(addClassSpy).toHaveBeenCalledWith(document.body, 'primary-light') expect(addClassSpy).toHaveBeenCalledWith(document.body, 'primary-light')

View File

@ -105,15 +105,24 @@ export class SettingsService {
darkModeEnabled ??= this.get(SETTINGS_KEYS.DARK_MODE_ENABLED) darkModeEnabled ??= this.get(SETTINGS_KEYS.DARK_MODE_ENABLED)
themeColor ??= this.get(SETTINGS_KEYS.THEME_COLOR) themeColor ??= this.get(SETTINGS_KEYS.THEME_COLOR)
const isSystemColorSchemeDark = window.matchMedia('(prefers-color-scheme: dark)').matches const isSystemColorSchemeDark = window.matchMedia(
'(prefers-color-scheme: dark)'
).matches
// clearing state. // clearing state.
this._renderer.removeAttribute(this.document.documentElement, 'data-bs-theme') this._renderer.removeAttribute(
this.document.documentElement,
'data-bs-theme'
)
this._renderer.removeClass(this.document.body, 'primary-dark') this._renderer.removeClass(this.document.body, 'primary-dark')
this._renderer.removeClass(this.document.body, 'primary-light') this._renderer.removeClass(this.document.body, 'primary-light')
if ((darkModeUseSystem && isSystemColorSchemeDark) || darkModeEnabled) { if ((darkModeUseSystem && isSystemColorSchemeDark) || darkModeEnabled) {
this._renderer.setAttribute(this.document.documentElement, 'data-bs-theme', 'dark') this._renderer.setAttribute(
this.document.documentElement,
'data-bs-theme',
'dark'
)
} }
if (themeColor) { if (themeColor) {
@ -138,7 +147,7 @@ export class SettingsService {
'--pngx-primary-lightness', '--pngx-primary-lightness',
`${hsl.l * 100}%`, `${hsl.l * 100}%`,
RendererStyleFlags2.DashCase RendererStyleFlags2.DashCase
); )
/** /**
* Fix for not reflecting changed variables. (--bs-primary is at :root while here we set them to body) * Fix for not reflecting changed variables. (--bs-primary is at :root while here we set them to body)