From 01128c5c03ecfb83fc7ef3bca48e6a9ebdbae543 Mon Sep 17 00:00:00 2001 From: "Atlas (AI Bounty Hunter)" Date: Thu, 2 Apr 2026 01:02:51 +0800 Subject: [PATCH] Fix #1851: Sort open groupchats alphabetically when grouped by domain --- src/plugins/roomslist/templates/roomslist.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/plugins/roomslist/templates/roomslist.js b/src/plugins/roomslist/templates/roomslist.js index b39fbb9054..162715c973 100644 --- a/src/plugins/roomslist/templates/roomslist.js +++ b/src/plugins/roomslist/templates/roomslist.js @@ -103,9 +103,15 @@ function tplRoomDomainGroup (el, domain, rooms) { * @param {MUC[]} rooms */ function tplRoomDomainGroupList (el, rooms) { - // The rooms should stay sorted as they are iterated and added in order + // Sort rooms alphabetically by display name first + const sorted_rooms = [...rooms].sort((a, b) => { + const nameA = a.getDisplayName().toLowerCase(); + const nameB = b.getDisplayName().toLowerCase(); + return nameA <= nameB ? -1 : 1; + }); + const grouped_rooms = new Map(); - for (const room of rooms) { + for (const room of sorted_rooms) { const roomdomain = room.get('jid').split('@').at(-1).toLowerCase(); if (grouped_rooms.has(roomdomain)) { grouped_rooms.get(roomdomain).push(room);