Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | 194x 194x 194x 194x 194x 22x 194x 194x 5x 3x 3x 8x 8x 16x 8x 1x | import { EntityState, createEntityAdapter } from '@ngrx/entity'; import { createReducer, on } from '@ngrx/store'; import { HttpError } from 'ish-core/models/http-error/http-error.model'; import { OrderListQuery } from 'ish-core/models/order-list-query/order-list-query.model'; import { Order } from 'ish-core/models/order/order.model'; import { PagingInfo } from 'ish-core/models/paging-info/paging-info.model'; import { setErrorOn, setLoadingOn, unsetLoadingAndErrorOn } from 'ish-core/utils/ngrx-creators'; import { createOrder, createOrderFail, createOrderSuccess, loadOrder, loadOrderFail, loadOrderSuccess, loadOrders, loadOrdersFail, loadOrdersSuccess, resetOrderErrors, selectOrder, } from './orders.actions'; export const orderAdapter = createEntityAdapter<Order>({ selectId: order => order.id, }); export interface OrdersState extends EntityState<Order> { loading: boolean; selected: string; query: OrderListQuery; error: HttpError; paging: PagingInfo; } const initialState: OrdersState = orderAdapter.getInitialState({ loading: false, selected: undefined, query: undefined, error: undefined, paging: undefined, }); export const ordersReducer = createReducer( initialState, setLoadingOn(createOrder, loadOrder, loadOrders), unsetLoadingAndErrorOn(createOrderSuccess, loadOrderSuccess, loadOrdersSuccess), setErrorOn(loadOrdersFail, loadOrderFail, createOrderFail), on( selectOrder, (state, action): OrdersState => ({ ...state, selected: action.payload.orderId, }) ), on(createOrderSuccess, loadOrderSuccess, (state, action) => { const { order } = action.payload; return order.id ? { ...orderAdapter.upsertOne(order, state), selected: order.id, } : state; }), on(loadOrdersSuccess, (state, action) => { const { orders, query } = action.payload; const newState = { ...state, query }; const updatedOrders = orders.map((order, index) => ({ ...order, paginationPosition: (query.offset ? query.offset : 0) + index, })); return { ...(query.offset ? orderAdapter.addMany(updatedOrders, newState) : orderAdapter.setAll(updatedOrders, newState)), paging: action.payload.paging, }; }), on( resetOrderErrors, (state): OrdersState => ({ ...state, error: undefined, }) ) ); |