diff --git a/client/js/lounge.js b/client/js/lounge.js index fcf9f46a..ab5002a4 100644 --- a/client/js/lounge.js +++ b/client/js/lounge.js @@ -339,8 +339,9 @@ $(function() { var nicks = chan.find(".users").data("nicks"); if (nicks) { var find = nicks.indexOf(data.msg.from); - if (find !== -1 && typeof move === "function") { - move(nicks, find, 0); + if (find !== -1) { + nicks.splice(find, 1); + nicks.unshift(data.msg.from); } } } @@ -428,9 +429,9 @@ $(function() { .attr("placeholder", nicks.length + " " + (nicks.length === 1 ? "user" : "users")); users + .data("nicks", nicks) .find(".names-original") - .html(templates.user(data)) - .data("nicks", nicks); + .html(templates.user(data)); // Refresh user search if (search.val().length) { @@ -1422,7 +1423,13 @@ $(function() { } function completeNicks(word) { - const users = chat.find(".active").find(".names-original"); + const users = chat.find(".active .users"); + + // Lobbies and private chats do not have an user list + if (!users.length) { + return []; + } + const words = users.data("nicks"); return $.grep( @@ -1576,17 +1583,6 @@ $(function() { $("#nick-value").text(nick); } - function move(array, old_index, new_index) { - if (new_index >= array.length) { - var k = new_index - array.length; - while ((k--) + 1) { - this.push(undefined); - } - } - array.splice(new_index, 0, array.splice(old_index, 1)[0]); - return array; - } - function toggleNotificationMarkers(newState) { // Toggles the favicon to red when there are unread notifications if (favicon.data("toggled") !== newState) {