Projekt

Obecné

Profil

Stáhnout (894 Bajtů) Statistiky
| Větev: | Tag: | Revize:
1
import { createTheme, Theme } from '@mui/material/styles'
2
import { AnyAction } from 'redux'
3
import { persist } from '../../utils/statePersistence'
4

    
5
export interface ThemeState {
6
    theme: Theme
7
    themeType: 'Light' | 'Dark'
8
}
9

    
10
const statePersistName = 'theme'
11

    
12
const initialTheme = createTheme({
13
    palette: {
14
        mode: 'light'
15
    }
16
})
17
const initialState: ThemeState = {
18
    theme: initialTheme,
19
    themeType: 'Light',
20
}
21

    
22
export enum ThemeStateActions {
23
    TOGGLE_THEME = 'TOGGLE_THEME',
24
    SET_LIGHT_MODE = 'SET_LIGHT_MODE',
25
    SET_DARK_MODE = 'SET_DARK_MODE',
26
}
27

    
28
const themeReducer = (state: ThemeState = initialState, action: AnyAction) => {
29
    // TODO add all the actions
30
    switch (action.type) {
31
        case ThemeStateActions.TOGGLE_THEME:
32
            return persist(statePersistName, state)
33

    
34
        default:
35
            return state
36
    }
37
}
38

    
39
export default themeReducer
(2-2/2)