mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-18 09:04:44 -04:00
Add dark mode (#554)
This commit is contained in:
parent
be2428f22c
commit
44637c753e
80 changed files with 2474 additions and 178 deletions
45
src/redux/dark-mode/methods.ts
Normal file
45
src/redux/dark-mode/methods.ts
Normal file
|
@ -0,0 +1,45 @@
|
|||
import { store } from '..'
|
||||
import { DarkModeConfig, DarkModeConfigActionType, SetDarkModeConfigAction } from './types'
|
||||
|
||||
export const setDarkMode = (darkMode: boolean): void => {
|
||||
const action: SetDarkModeConfigAction = {
|
||||
type: DarkModeConfigActionType.SET_DARK_MODE,
|
||||
darkMode: darkMode
|
||||
}
|
||||
store.dispatch(action)
|
||||
}
|
||||
|
||||
export const saveToLocalStorage = (darkModeConfig: DarkModeConfig): void => {
|
||||
try {
|
||||
window.localStorage.setItem('nightMode', String(darkModeConfig.darkMode))
|
||||
} catch (e) {
|
||||
console.error('Saving dark-mode setting to local storage failed: ', e)
|
||||
}
|
||||
}
|
||||
|
||||
export const loadFromLocalStorage = (): DarkModeConfig | undefined => {
|
||||
try {
|
||||
const storedValue = window.localStorage.getItem('nightMode')
|
||||
if (!storedValue) {
|
||||
return undefined
|
||||
}
|
||||
return {
|
||||
darkMode: storedValue === 'true'
|
||||
}
|
||||
} catch (e) {
|
||||
console.error('Loading dark-mode setting from local storage failed: ', e)
|
||||
return undefined
|
||||
}
|
||||
}
|
||||
|
||||
export const determineDarkModeBrowserSetting = (): DarkModeConfig | undefined => {
|
||||
try {
|
||||
const mediaQueryResult = window.matchMedia('(prefers-color-scheme: dark)').matches
|
||||
return {
|
||||
darkMode: mediaQueryResult
|
||||
}
|
||||
} catch (e) {
|
||||
console.error('Can not determine dark-mode setting from browser: ', e)
|
||||
return undefined
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue