feat(chat): send online user in a single socketio message

This commit is contained in:
Maieul BOYER 2025-12-18 13:51:06 +01:00 committed by Maix0
parent 41fdbfbaaa
commit bcba86ed8a
9 changed files with 42 additions and 78 deletions

View file

@ -466,7 +466,7 @@ function handleChat(_url: string, _args: RouteHandlerParams): RouteHandlerReturn
// //connected(socket);
// },10000); // every 10 sec
socket.on('listBud', async (myBuddies: string) => {
socket.on('listBud', async (myBuddies: string[]) => {
const buddies = document.getElementById('div-buddies') as HTMLDivElement;
console.log('%cList buddies connected ',color.yellow, myBuddies);
listBuddies(socket, buddies, myBuddies);
@ -610,4 +610,4 @@ function handleChat(_url: string, _args: RouteHandlerParams): RouteHandlerReturn
}
}
};
addRoute('/chat', handleChat, { bypass_auth: true });
addRoute('/chat', handleChat, { bypass_auth: true });

View file

@ -11,35 +11,38 @@ import { getProfil } from './getProfil';
* collected in the clipBoard
* @param socket
* @param buddies
* @param listBuddies
* @param bud
* @returns
*/
export async function listBuddies(socket: Socket, buddies: HTMLDivElement, listBuddies: string) {
export async function listBuddies(socket: Socket, buddies: HTMLDivElement, listBuddies: string[]) {
if (!buddies) return;
const sendtextbox = document.getElementById('t-chat-window') as HTMLButtonElement;
const buddiesElement = document.createElement("div-buddies-list");
buddiesElement.textContent = listBuddies + '\n';
const user = getUser()?.name ?? "";
buddies.appendChild(buddiesElement);
buddies.scrollTop = buddies.scrollHeight;
console.log(`Added buddies: ${listBuddies}`);
buddies.innerHTML = "";
for (const bud of listBuddies)
{
if (!buddies) return;
const sendtextbox = document.getElementById('t-chat-window') as HTMLButtonElement;
const buddiesElement = document.createElement("div-buddies-list");
buddiesElement.textContent = bud + '\n';
const user = getUser()?.name ?? "";
buddies.appendChild(buddiesElement);
buddies.scrollTop = buddies.scrollHeight;
console.log(`Added buddies: ${bud}`);
buddiesElement.style.cursor = "pointer";
buddiesElement.addEventListener("click", () => {
navigator.clipboard.writeText(listBuddies);
if (listBuddies !== user && user !== "") {
sendtextbox.value = `@${listBuddies}: `;
console.log("Copied to clipboard:", listBuddies);
sendtextbox.focus();
}
});
buddiesElement.addEventListener("dblclick", () => {
console.log("Open profile:", listBuddies);
getProfil(socket, listBuddies);
sendtextbox.value = "";
});
buddiesElement.style.cursor = "pointer";
buddiesElement.addEventListener("click", () => {
navigator.clipboard.writeText(bud);
if (bud !== user && user !== "") {
sendtextbox.value = `@${bud}: `;
console.log("Copied to clipboard:", bud);
sendtextbox.focus();
}
});
buddiesElement.addEventListener("dblclick", () => {
console.log("Open profile:", bud);
getProfil(socket, bud);
sendtextbox.value = "";
});
}
}