import { createReducer, on } from '@ngrx/store'; import { initialState } from './state'; import { authSuccess, deptSuccess, deptUserSuccess, deptUser, deptUserFailure, myDeptUserSuccess } from './actions'; import * as AuthenticationStore from '@app/store/account/authentication'; export const reducer = createReducer( initialState, on(authSuccess, (state, action) => { return { ...state, auth: action.res }; }), on(deptSuccess, (state, action) => { return { ...state, departmentInfoList: action.departmentInfoList }; }), on(deptUser, (state, action) => { return { ...state, selectedDepartmentProcessing: true }; }), on(deptUserSuccess, (state, action) => { const userList = action.userInfos.sort((a, b) => a.order < b.order ? -1 : a.order > b.order ? 1 : a.name < b.name ? -1 : a.name > b.name ? 1 : 0 ); return { ...state, selectedDepartmentUserInfoList: userList, selectedDepartmentStatus: action.res, selectedDepartmentProcessing: false }; }), on(deptUserFailure, (state, action) => { return { ...state, selectedDepartmentProcessing: false }; }), on(myDeptUserSuccess, (state, action) => { return { ...state, myDepartmentUserInfoList: action.userInfos }; }), on(AuthenticationStore.logoutInitialize, (state, action) => { return { ...initialState }; }) );