UNPKG

instantjob-recruiter-client

Version:

a set of tools for creating an instantjob recruiter react client

55 lines (52 loc) 1.38 kB
import {update_item, update_items, store_items, remove_item} from './base' const initial_state = { recruiters: {}, teams: {}, self: null, } export function recruiters(state = initial_state, action) { switch (action.type) { case "store_recruiters": return store_items( state, "recruiters", action.recruiters.map(({default_deal: {id: default_deal_id}, ...recruiter}) => ({ ...recruiter, default_deal_id, })) ) case "update_profile": let self = state.self if (action.profile.id) { self = action.profile.id } let recruiter = action.profile if (state.recruiters[self]) { recruiter = { ...state.recruiters[self], ...recruiter, } } if (self) { return { ...state, recruiters: { ...state.recruiters, [self]: recruiter, }, self, } } return state case "update_recruiter": return update_item(state, "recruiters", action.recruiter) case "update_recruiters": return update_items(state, "recruiters", action.recruiters) case "store_teams": return store_items(state, "teams", action.teams) case "remove_team": return remove_item(state, "teams", action.team_id) default: return state } }