instantjob-recruiter-client
Version:
a set of tools for creating an instantjob recruiter react client
48 lines (45 loc) • 1.28 kB
JSX
import {update_item, store_items, update_items} from './base'
const initial_state = {
users: {},
recruiter_users: [],
current_user: null,
current_recipient: null,
order_by: 'app_name',
order_ascending: false,
users_loaded: false,
}
export function users(state = initial_state, action) {
switch (action.type) {
case "store_users":
return store_items({...state, users_loaded: true}, "users", action.users)
case "set_current_user":
return Object.assign({}, state, {
current_user: action.user_id,
})
case "set_current_recipient":
return Object.assign({}, state, {
current_recipient: action.user_id,
})
case "set_order_by":
if (action.order_by === state.order_by) {
return Object.assign({}, state, {
order_ascending: !state.order_ascending,
})
} else {
return Object.assign({}, state, {
order_by: action.order_by,
})
}
case "store_recruiter_users":
return {
...state,
recruiter_users: action.recruiter_users,
}
case "update_user":
return update_item(state, "users", action.user)
case "update_users":
return update_items(state, "users", action.users)
default:
return state
}
}