summaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
authorReed Garmsen <rgarmsen2295@gmail.com>2015-11-02 16:04:14 -0800
committerReed Garmsen <rgarmsen2295@gmail.com>2015-11-02 16:21:50 -0800
commit9cc000f6e23d75e826c4468dd5c3977397e58e57 (patch)
tree6976121fa6dae9f5d2f11ee227e4e5784f1b9d59 /web
parentdfccfe78feb532381f475365763de113aa4ef7a4 (diff)
downloadchat-9cc000f6e23d75e826c4468dd5c3977397e58e57.tar.gz
chat-9cc000f6e23d75e826c4468dd5c3977397e58e57.tar.bz2
chat-9cc000f6e23d75e826c4468dd5c3977397e58e57.zip
Functionalized code
Diffstat (limited to 'web')
-rw-r--r--web/react/components/navbar_dropdown.jsx18
-rw-r--r--web/react/stores/channel_store.jsx24
-rw-r--r--web/react/utils/utils.jsx21
3 files changed, 27 insertions, 36 deletions
diff --git a/web/react/components/navbar_dropdown.jsx b/web/react/components/navbar_dropdown.jsx
index 937e88325..029b9c137 100644
--- a/web/react/components/navbar_dropdown.jsx
+++ b/web/react/components/navbar_dropdown.jsx
@@ -18,24 +18,8 @@ function getStateFromStores() {
teams.push(teamsObject[teamId]);
}
}
- teams.sort((teamA, teamB) => {
- let teamADisplayName = '';
- let teamBDisplayName = '';
- if (teamA && teamA.display_name) {
- teamADisplayName = teamA.display_name.toLowerCase();
- }
- if (teamB && teamB.display_name) {
- teamBDisplayName = teamB.display_name.toLowerCase();
- }
-
- if (teamADisplayName < teamBDisplayName) {
- return -1;
- } else if (teamADisplayName > teamBDisplayName) {
- return 1;
- }
- return 0;
- });
+ teams.sort(Utils.sortByDisplayName);
return {teams};
}
diff --git a/web/react/stores/channel_store.jsx b/web/react/stores/channel_store.jsx
index 64aaeb329..cc0d0d14b 100644
--- a/web/react/stores/channel_store.jsx
+++ b/web/react/stores/channel_store.jsx
@@ -4,6 +4,7 @@
var AppDispatcher = require('../dispatcher/app_dispatcher.jsx');
var EventEmitter = require('events').EventEmitter;
+var Utils;
var Constants = require('../utils/constants.jsx');
var ActionTypes = Constants.ActionTypes;
@@ -183,26 +184,11 @@ class ChannelStoreClass extends EventEmitter {
channels.push(channel);
}
- channels.sort((a, b) => {
- let channelADisplayName = '';
- let channelBDisplayName = '';
-
- if (a && a.display_name) {
- channelADisplayName = a.display_name.toLowerCase();
- }
- if (b && b.display_name) {
- channelBDisplayName = b.display_name.toLowerCase();
- }
-
- if (channelADisplayName < channelBDisplayName) {
- return -1;
- }
- if (channelADisplayName > channelBDisplayName) {
- return 1;
- }
- return 0;
- });
+ if (!Utils) {
+ Utils = require('../utils/utils.jsx'); //eslint-disable-line global-require
+ }
+ channels.sort(Utils.sortByDisplayName);
this.pStoreChannels(channels);
}
pStoreChannels(channels) {
diff --git a/web/react/utils/utils.jsx b/web/react/utils/utils.jsx
index 296307bc6..35c6e29b6 100644
--- a/web/react/utils/utils.jsx
+++ b/web/react/utils/utils.jsx
@@ -1090,3 +1090,24 @@ export function openDirectChannelToUser(user, successCb, errorCb) {
);
}
}
+
+// Use when sorting multiple channels or teams by their `display_name` field
+export function sortByDisplayName(a, b) {
+ let aDisplayName = '';
+ let bDisplayName = '';
+
+ if (a && a.display_name) {
+ aDisplayName = a.display_name.toLowerCase();
+ }
+ if (b && b.display_name) {
+ bDisplayName = b.display_name.toLowerCase();
+ }
+
+ if (aDisplayName < bDisplayName) {
+ return -1;
+ }
+ if (aDisplayName > bDisplayName) {
+ return 1;
+ }
+ return 0;
+}