mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-05-22 11:15:23 -04:00
Add dark mode (#554)
This commit is contained in:
parent
be2428f22c
commit
44637c753e
80 changed files with 2474 additions and 178 deletions
26
src/redux/dark-mode/reducers.ts
Normal file
26
src/redux/dark-mode/reducers.ts
Normal file
|
@ -0,0 +1,26 @@
|
|||
import { Reducer } from 'redux'
|
||||
import { determineDarkModeBrowserSetting, loadFromLocalStorage, saveToLocalStorage } from './methods'
|
||||
import { DarkModeConfig, DarkModeConfigActions, DarkModeConfigActionType, SetDarkModeConfigAction } from './types'
|
||||
|
||||
export const getInitialState = (): DarkModeConfig => {
|
||||
const initialMode = loadFromLocalStorage() ?? determineDarkModeBrowserSetting() ?? {
|
||||
darkMode: false
|
||||
}
|
||||
saveToLocalStorage(initialMode)
|
||||
return initialMode
|
||||
}
|
||||
|
||||
export const DarkModeConfigReducer: Reducer<DarkModeConfig, DarkModeConfigActions> = (state: DarkModeConfig = getInitialState(), action: DarkModeConfigActions) => {
|
||||
let darkModeConfigState: DarkModeConfig
|
||||
switch (action.type) {
|
||||
case DarkModeConfigActionType.SET_DARK_MODE:
|
||||
darkModeConfigState = {
|
||||
...state,
|
||||
darkMode: (action as SetDarkModeConfigAction).darkMode
|
||||
}
|
||||
saveToLocalStorage(darkModeConfigState)
|
||||
return darkModeConfigState
|
||||
default:
|
||||
return state
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue