burger-online

Форк
0
44 строки · 1.3 Кб
1
import {createReducer} from '@reduxjs/toolkit'
2
import {wsStatus} from '../../utils/constants'
3
import {currectOrderItems} from '../orders-verification'
4
import {RootState} from '../store'
5
import {
6
  profileOrderWsClose,
7
  profileOrderWsConnecting,
8
  profileOrderWsError,
9
  profileOrderWsMessage,
10
  profileOrderWsOpen,
11
} from './actions'
12
import {TProfileOrdersState} from './types'
13

14
const initialState: TProfileOrdersState = {
15
  wsStatusOrders: wsStatus.offline,
16
  orders: [],
17
  connectingError: null,
18
}
19

20
export const profileOrderReducer = createReducer(initialState, builder => {
21
  builder
22
    .addCase(profileOrderWsConnecting, state => {
23
      state.wsStatusOrders = wsStatus.connecting
24
    })
25
    .addCase(profileOrderWsOpen, state => {
26
      state.wsStatusOrders = wsStatus.online
27
    })
28
    .addCase(profileOrderWsClose, state => {
29
      state.wsStatusOrders = wsStatus.offline
30
    })
31
    .addCase(profileOrderWsMessage, (state, {payload}) => {
32
      const {orders, success} = payload
33
      if (success) {
34
        state.orders = currectOrderItems(orders)
35
      }
36
    })
37
    .addCase(profileOrderWsError, (state, {payload}) => {
38
      if (payload) {
39
        state.connectingError = payload
40
      }
41
    })
42
})
43

44
export const profileOrderStore = (store: RootState) => store.profileOrder
45

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

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

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

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