mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-14 15:14:56 -04:00
fix: Move content into to frontend directory
Doing this BEFORE the merge prevents a lot of merge conflicts. Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
This commit is contained in:
parent
4e18ce38f3
commit
762a0a850e
1051 changed files with 0 additions and 35 deletions
|
@ -0,0 +1,48 @@
|
|||
/*
|
||||
* SPDX-FileCopyrightText: 2022 The HedgeDoc developers (see AUTHORS file)
|
||||
*
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
import { setDarkModePreference } from '../../../redux/dark-mode/methods'
|
||||
import { Logger } from '../../../utils/logger'
|
||||
import { isClientSideRendering } from '../../../utils/is-client-side-rendering'
|
||||
import { DarkModePreference } from '../../../redux/dark-mode/types'
|
||||
import { DARK_MODE_LOCAL_STORAGE_KEY } from '../../../hooks/common/use-apply-dark-mode'
|
||||
|
||||
const logger = new Logger('Dark mode initializer')
|
||||
|
||||
/**
|
||||
* Loads the saved dark mode setting or tries to derive it from the browser settings.
|
||||
* The result is saved in the global application state.
|
||||
*
|
||||
* @return A promise that resolves as soon as the dark mode has been loaded.
|
||||
*/
|
||||
export const loadDarkMode = (): Promise<void> => {
|
||||
setDarkModePreference(fetchDarkModeFromLocalStorage())
|
||||
return Promise.resolve()
|
||||
}
|
||||
|
||||
/**
|
||||
* Tries to read the saved dark mode settings from the browser local storage.
|
||||
*
|
||||
* @return {@link true} if the local storage has saved that the user prefers dark mode.
|
||||
* {@link false} if the user doesn't prefer dark mode or if the value couldn't be read from local storage.
|
||||
*/
|
||||
const fetchDarkModeFromLocalStorage = (): DarkModePreference => {
|
||||
if (!isClientSideRendering()) {
|
||||
return DarkModePreference.AUTO
|
||||
}
|
||||
try {
|
||||
const colorScheme = window.localStorage.getItem(DARK_MODE_LOCAL_STORAGE_KEY)
|
||||
if (colorScheme === 'dark') {
|
||||
return DarkModePreference.DARK
|
||||
} else if (colorScheme === 'light') {
|
||||
return DarkModePreference.LIGHT
|
||||
} else {
|
||||
return DarkModePreference.AUTO
|
||||
}
|
||||
} catch (error) {
|
||||
logger.error('Loading from local storage failed', error)
|
||||
return DarkModePreference.AUTO
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue