import { createReducer, on } from '@ngrx/store'; import { UserInfo } from '@ucap/protocol-sync'; import { initialState, adapterBuddy } from './state'; import { buddy2Success, delSuccess, updateSuccess, nicknameSuccess } from './actions'; export const reducer = createReducer( initialState, on(buddy2Success, (state, action) => { return { ...state, buddies: adapterBuddy.upsertMany(action.buddyList, { ...state.buddies, syncDate: action.syncDate }) }; }), on(delSuccess, (state, action) => { const res = action.res; return { ...state, buddies: adapterBuddy.removeMany(res.userSeqs, { ...state.buddies }) }; }), on(updateSuccess, (state, action) => { const res = action.res; const userInfo: UserInfo = { ...state.buddies.entities[res.seq], isFavorit: res.isFavorit }; return { ...state, buddies: adapterBuddy.upsertOne(userInfo, { ...state.buddies }) }; }), on(nicknameSuccess, (state, action) => { const res = action.res; const userInfo: UserInfo = { ...state.buddies.entities[res.userSeq], nickName: res.nickname }; return { ...state, buddies: adapterBuddy.upsertOne(userInfo, { ...state.buddies }) }; }) );