maccounter

Форк
0
/
appReducer.ts 
40 строк · 1.1 Кб
1
import { appInitialState } from '@store/app-store/appInitialState'
2
import { getCurrentTimePeriod } from '@store/app-store/utils'
3
import { AnyAction } from 'redux'
4
import { appActionTypes } from '@store/app-store/actionTypes'
5

6
// eslint-disable-next-line default-param-last
7
const appReducer = (state = appInitialState, action?: AnyAction) => {
8
    switch (action?.type) {
9
        case appActionTypes.setTimePeriod:
10
            return {
11
                ...state,
12
                timePeriod: action?.payload,
13
            }
14
        case appActionTypes.setModalIsActive:
15
            return {
16
                ...state,
17
                modal: {
18
                    ...state.modal,
19
                    isActive: action?.payload,
20
                },
21
            }
22
        default:
23
            return state
24
    }
25
}
26

27
export const setTimePeriod = () => ({
28
    type: appActionTypes.setTimePeriod,
29
    payload: getCurrentTimePeriod(),
30
})
31

32
export const setModalIsActive = (payload: boolean) => ({
33
    type: appActionTypes.setModalIsActive,
34
    payload,
35
})
36

37
export type SetTimePeriod = typeof setTimePeriod
38
export type SetModalIsActive = typeof setModalIsActive
39

40
export default appReducer
41

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.