unread message count + fix bug
This commit is contained in:
@@ -24,6 +24,10 @@ let recievedMessages = new Map();
|
|||||||
/** @type {Map<number, string>} */
|
/** @type {Map<number, string>} */
|
||||||
let usernames = new Map();
|
let usernames = new Map();
|
||||||
|
|
||||||
|
// map of userId's to how many unread messages there are
|
||||||
|
/** @type {Map<number, number>} */
|
||||||
|
let unreads = new Map();
|
||||||
|
|
||||||
// userId of the current user who is being talked to
|
// userId of the current user who is being talked to
|
||||||
let currentUser = 0;
|
let currentUser = 0;
|
||||||
|
|
||||||
@@ -123,6 +127,13 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||||||
if (audio !== undefined) {
|
if (audio !== undefined) {
|
||||||
audio.play();
|
audio.play();
|
||||||
}
|
}
|
||||||
|
const currentUnreads = unreads.get(data.userId);
|
||||||
|
if (currentUnreads === undefined) {
|
||||||
|
unreads.set(data.userId, 1);
|
||||||
|
} else {
|
||||||
|
unreads.set(data.userId, currentUnreads + 1);
|
||||||
|
}
|
||||||
|
updateOnlineUsers();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -152,20 +163,26 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
function updateOnlineUsers() {
|
async function updateOnlineUsers() {
|
||||||
const friendsList = document.getElementById("friends-list-links");
|
const friendsList = document.getElementById("friends-list-links");
|
||||||
friendsList.innerHTML = "";
|
friendsList.innerHTML = "";
|
||||||
|
|
||||||
// Get everyone's username
|
// Get everyone's username
|
||||||
for (const user of connectedFriends) {
|
for (const user of connectedFriends) {
|
||||||
if (usernames.get(user) === undefined) {
|
if (usernames.get(user) === undefined) {
|
||||||
fetchUsername(user);
|
await fetchUsername(user);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const user of connectedFriends) {
|
for (const user of connectedFriends) {
|
||||||
const newElement = document.createElement("p");
|
const newElement = document.createElement("p");
|
||||||
newElement.textContent = usernames.get(user);
|
const userUnreads = unreads.get(user);
|
||||||
|
if (userUnreads !== undefined) {
|
||||||
|
newElement.textContent = "[" + userUnreads + "] ";
|
||||||
|
} else {
|
||||||
|
newElement.textContent = "";
|
||||||
|
}
|
||||||
|
newElement.textContent += usernames.get(user);
|
||||||
newElement.onclick = function() {
|
newElement.onclick = function() {
|
||||||
openUser(user);
|
openUser(user);
|
||||||
}
|
}
|
||||||
@@ -206,6 +223,9 @@ function openUser(user) {
|
|||||||
for (const message of messages) {
|
for (const message of messages) {
|
||||||
renderMessage(message);
|
renderMessage(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unreads.delete(user);
|
||||||
|
updateOnlineUsers();
|
||||||
}
|
}
|
||||||
|
|
||||||
function sendMessage() {
|
function sendMessage() {
|
||||||
|
|||||||
Reference in New Issue
Block a user