Add dark mode (#554)

This commit is contained in:
Philip Molares 2020-09-13 18:04:02 +02:00 committed by GitHub
parent be2428f22c
commit 44637c753e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
80 changed files with 2474 additions and 178 deletions

View 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
}
}