From 0936c2ff86da275f62da9afb2a7d44925fcb9766 Mon Sep 17 00:00:00 2001 From: Nik <45662151+Nikosmonaut@users.noreply.github.com> Date: Mon, 9 Mar 2020 17:59:30 +0100 Subject: [PATCH] Special case for member profile name. (#11918) * Special case for member profile name. Use a case insensitive order by * Use of localeCompare function for name comparison --- .../client/src/components/header/index.vue | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/website/client/src/components/header/index.vue b/website/client/src/components/header/index.vue index 9d3c391405..a2cb7df1a1 100644 --- a/website/client/src/components/header/index.vue +++ b/website/client/src/components/header/index.vue @@ -170,7 +170,30 @@ export default { return Math.floor(this.currentWidth / 140) + 1; }, sortedPartyMembers () { - return orderBy(this.partyMembers, [this.user.party.order], [this.user.party.orderAscending]); + let sortedMembers = this.partyMembers; + const { order, orderAscending } = this.user.party; + + if (order === 'profile.name') { + // If members are to be sorted by name, use localeCompare for case- + // insensitive sort + sortedMembers.sort( + (a, b) => { + if (orderAscending === 'desc') { + return b.profile.name.localeCompare(a.profile.name); + } + + return a.profile.name.localeCompare(b.profile.name); + }, + ); + } else { + sortedMembers = orderBy( + sortedMembers, + [order], + [orderAscending], + ); + } + + return sortedMembers; }, hideHeader () { return ['groupPlan', 'privateMessages'].includes(this.$route.name);