function sortAgents()

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);
            }
        })
}