From f012b582eded9e78123e56e5aa33a37fa87579cb Mon Sep 17 00:00:00 2001 From: Roland Osborne Date: Wed, 12 Oct 2022 09:42:26 -0700 Subject: [PATCH] sorting contacts --- app/mobile/src/session/cards/useCards.hook.js | 6 ++++-- app/mobile/src/session/channels/Channels.jsx | 2 +- .../src/session/channels/useChannels.hook.js | 16 +++++++++++++++- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/app/mobile/src/session/cards/useCards.hook.js b/app/mobile/src/session/cards/useCards.hook.js index 428ab80b..1923e996 100644 --- a/app/mobile/src/session/cards/useCards.hook.js +++ b/app/mobile/src/session/cards/useCards.hook.js @@ -66,10 +66,12 @@ export function useCards() { }) if (state.sorting) { filtered.sort((a, b) => { - if (a.name === b.name) { + const aName = a?.name?.toLowerCase(); + const bName = b?.name?.toLowerCase(); + if (aName === bName) { return 0; } - if (!a.name || (a.name < b.name)) { + if (!aName || (aName < bName)) { return -1; } return 1; diff --git a/app/mobile/src/session/channels/Channels.jsx b/app/mobile/src/session/channels/Channels.jsx index 2d55fbfa..9f4f1716 100644 --- a/app/mobile/src/session/channels/Channels.jsx +++ b/app/mobile/src/session/channels/Channels.jsx @@ -61,7 +61,7 @@ export function ChannelsBody({ state, actions, openConversation }) { New Topic: + autoCapitalize="words" placeholder="Subject (optional)" /> Members: { state.connected.length == 0 && ( diff --git a/app/mobile/src/session/channels/useChannels.hook.js b/app/mobile/src/session/channels/useChannels.hook.js index 6433b486..ae39f53a 100644 --- a/app/mobile/src/session/channels/useChannels.hook.js +++ b/app/mobile/src/session/channels/useChannels.hook.js @@ -33,7 +33,21 @@ export function useChannels() { useEffect(() => { const contacts = Array.from(card.state.cards.values()); - updateState({ connected: contacts.filter(contact => contact.detail.status === 'connected') }); + const connected = contacts.filter(contact => { + return contact.detail.status === 'connected' + }); + const sorted = connected.sort((a, b) => { + const aName = a?.profile?.name; + const bName = b?.profile?.name; + if (aName === bName) { + return 0; + } + if (!aName || (aName < bName)) { + return -1; + } + return 1; + }); + updateState({ connected: sorted }); }, [card]); useEffect(() => {