in source/aws-connect-vm-portal/src/store/reducers/agents.reducer.ts [126:158]
function sortAgents(agents: AgentDto[], sortKey: string, sortOrder: string, filter: string = "") {
return agents
.filter(agent => {
return ((agent.firstName || "").toLowerCase().includes(filter.toLowerCase()) ||
(agent.lastName || "").toLowerCase().includes(filter.toLowerCase()) ||
(agent.username || "").toLowerCase().includes(filter.toLowerCase()) ||
(agent.email || "").toLowerCase().includes(filter.toLowerCase()) ||
(agent.extension || "").includes(filter.toLowerCase()))
}).sort((a, b) => {
switch (sortKey) {
case AgentsSortKey.FIRST_NAME:
return (sortOrder === AgentsSortOrder.ASC) ?
(a.firstName > b.firstName ? 1 : -1) :
(a.firstName < b.firstName ? 1 : -1);
case AgentsSortKey.LAST_NAME:
return (sortOrder === AgentsSortOrder.ASC) ?
(a.lastName > b.lastName ? 1 : -1) :
(a.lastName < b.lastName ? 1 : -1);
case AgentsSortKey.EMAIL:
return (sortOrder === AgentsSortOrder.ASC) ?
(a.email > b.email ? 1 : -1) :
(a.email < b.email ? 1 : -1);
case AgentsSortKey.EXTENSION:
return (sortOrder === AgentsSortOrder.ASC) ?
(a.extension > b.extension ? 1 : -1) :
(a.extension < b.extension ? 1 : -1);
default:
return (sortOrder === AgentsSortOrder.ASC) ?
(a.firstName > b.firstName ? 1 : -1) :
(a.firstName < b.firstName ? 1 : -1);
}
})
}