import { createReducer, on } from '@ngrx/store'; import { initialState } from './state'; import { buddy2Success, group2Success, roomSuccess } from './actions'; import * as ChatStore from '@app/store/messenger/chat'; import { RoomInfo } from '@ucap-webmessenger/protocol-room'; export const reducer = createReducer( initialState, on(buddy2Success, (state, action) => { return { ...state, buddyInfoList: action.buddyList, buddy2SyncDate: action.syncDate }; }), on(group2Success, (state, action) => { return { ...state, groupList: action.groupList, group2SyncDate: action.syncDate }; }), on(roomSuccess, (state, action) => { return { ...state, roomList: action.roomList, roomUserInfoMap: action.roomUserInfoMap, roomSyncDate: action.syncDate }; }), on(ChatStore.newEventMessage, (state, action) => { const roomList: RoomInfo[] = []; state.roomList.forEach((roomInfo, index) => { if (roomInfo.roomSeq === action.roomSeq) { roomList.push({ ...roomInfo, finalEventMessage: action.info.sentMessage }); } else { roomList.push(roomInfo); } }); return { ...state, roomList }; }) );