forked from CringeStudios/gamja
Sort servers alphanumerically
This commit is contained in:
parent
7dd21177bc
commit
136353b2b5
18
state.js
18
state.js
@ -153,10 +153,24 @@ function trimStartCharacter(s, c) {
|
|||||||
return s.substring(i);
|
return s.substring(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getBouncerNetworkNameFromBuffer(state, buffer) {
|
||||||
|
let server = state.servers.get(buffer.server);
|
||||||
|
let network = state.bouncerNetworks.get(server.bouncerNetID);
|
||||||
|
if (!network) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return getServerName(server, network);
|
||||||
|
}
|
||||||
|
|
||||||
/* Returns 1 if a should appear after b, -1 if a should appear before b, or
|
/* Returns 1 if a should appear after b, -1 if a should appear before b, or
|
||||||
* 0 otherwise. */
|
* 0 otherwise. */
|
||||||
function compareBuffers(a, b) {
|
function compareBuffers(state, a, b) {
|
||||||
if (a.server !== b.server) {
|
if (a.server !== b.server) {
|
||||||
|
let aServerName = getBouncerNetworkNameFromBuffer(state, a);
|
||||||
|
let bServerName = getBouncerNetworkNameFromBuffer(state, b);
|
||||||
|
if (aServerName && bServerName && aServerName !== bServerName) {
|
||||||
|
return aServerName.localeCompare(bServerName);
|
||||||
|
}
|
||||||
return a.server > b.server ? 1 : -1;
|
return a.server > b.server ? 1 : -1;
|
||||||
}
|
}
|
||||||
if (isServerBuffer(a) !== isServerBuffer(b)) {
|
if (isServerBuffer(a) !== isServerBuffer(b)) {
|
||||||
@ -365,7 +379,7 @@ export const State = {
|
|||||||
unread: Unread.NONE,
|
unread: Unread.NONE,
|
||||||
prevReadReceipt: null,
|
prevReadReceipt: null,
|
||||||
});
|
});
|
||||||
bufferList = bufferList.sort(compareBuffers);
|
bufferList = bufferList.sort((a, b) => compareBuffers(state, a, b));
|
||||||
let buffers = new Map(bufferList.map((buf) => [buf.id, buf]));
|
let buffers = new Map(bufferList.map((buf) => [buf.id, buf]));
|
||||||
return [id, { buffers }];
|
return [id, { buffers }];
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user