going home end of day

This commit is contained in:
NigeParis 2025-12-05 19:01:42 +01:00 committed by apetitco
parent eb613c10f4
commit 4de1aae73c
2 changed files with 42 additions and 36 deletions

View file

@ -58,7 +58,7 @@ function addMessage(text: string) {
return ; return ;
}; };
async function isLoggedIn() { function isLoggedIn() {
return getUser() || null; return getUser() || null;
}; };
@ -74,11 +74,13 @@ async function windowStateHidden() {
socketId.emit('client_left', { socketId.emit('client_left', {
user: userName?.name, user: userName?.name,
why: 'tab window hidden - socket not dead', why: 'tab window hidden - socket not dead',
}); });
return; return;
}; };
async function windowStateVisable() { async function windowStateVisable() {
const buddies = document.getElementById('div-buddies') as HTMLDivElement;
const socketId = __socket || undefined; const socketId = __socket || undefined;
let oldName = localStorage.getItem("oldName") || undefined; let oldName = localStorage.getItem("oldName") || undefined;
console.log("%c WINDOW VISIBLE - oldName :'" + oldName + "'", color.green); console.log("%c WINDOW VISIBLE - oldName :'" + oldName + "'", color.green);
@ -91,6 +93,9 @@ async function windowStateVisable() {
userName: oldName, userName: oldName,
user: user?.name, user: user?.name,
}); });
buddies.innerHTML = '';
buddies.textContent = '';
//connected(socketId);
setTitle('Chat Page'); setTitle('Chat Page');
return; return;
}; };
@ -128,21 +133,21 @@ async function listBuddies(buddies: HTMLDivElement, listBuddies: string) {
if (!buddies) return; if (!buddies) return;
const sendtextbox = document.getElementById('t-chat-window') as HTMLButtonElement; const sendtextbox = document.getElementById('t-chat-window') as HTMLButtonElement;
const buddiesElement = document.createElement("div-buddies-list");
buddiesElement.textContent = listBuddies + '\n';
const user = getUser()?.name ?? "";
const messageElement = document.createElement("div-buddies-list"); buddiesElement.style.cursor = "pointer";
messageElement.textContent = listBuddies + '\n'; buddiesElement.addEventListener("click", () => {
// ✔ Add click-to-copy
messageElement.style.cursor = "pointer"; // optional visual hint
messageElement.addEventListener("click", () => {
navigator.clipboard.writeText(listBuddies); navigator.clipboard.writeText(listBuddies);
sendtextbox.value = `@${listBuddies}: `; if (listBuddies !== user && user !== "") {
console.log("Copied to clipboard:", listBuddies); sendtextbox.value = `@${listBuddies}: `;
sendtextbox.focus(); // move cursor into the box console.log("Copied to clipboard:", listBuddies);
sendtextbox.focus();
}
}); });
buddies.appendChild(messageElement); buddies.appendChild(buddiesElement);
buddies.scrollTop = buddies.scrollHeight; buddies.scrollTop = buddies.scrollHeight;
console.log(`Added buddies: ${listBuddies}`); console.log(`Added buddies: ${listBuddies}`);
} }
@ -150,7 +155,7 @@ async function listBuddies(buddies: HTMLDivElement, listBuddies: string) {
function waitSocketConnected(socket: Socket): Promise<void> { function waitSocketConnected(socket: Socket): Promise<void> {
return new Promise(resolve => { return new Promise(resolve => {
if (socket.connected) return resolve(); // already connected if (socket.connected) return resolve();
socket.on("connect", () => resolve()); socket.on("connect", () => resolve());
}); });
}; };
@ -176,10 +181,10 @@ function quitChat (socket: Socket) {
}; };
const bconnected = document.getElementById('b-help') as HTMLButtonElement; // const bconnected = document.getElementById('b-help') as HTMLButtonElement;
if (bconnected) { // if (bconnected) {
bconnected.click(); // bconnected.click();
} // }
function logout(socket: Socket) { function logout(socket: Socket) {
socket.emit("logout"); // notify server socket.emit("logout"); // notify server
@ -221,7 +226,7 @@ async function connected(socket: Socket): Promise<void> {
console.log('%coldUser:',color.yellow, oldUser); console.log('%coldUser:',color.yellow, oldUser);
if (loggedIn?.name === undefined) {console.log('');return ;} if (loggedIn?.name === undefined) {console.log('');return ;}
oldUser = loggedIn.name ?? ""; oldUser = loggedIn.name ?? "";
const res = await client.guestLogin(); // const res = await client.guestLogin();
let user = await updateUser(); let user = await updateUser();
console.log('%cUser?name:',color.yellow, user?.name); console.log('%cUser?name:',color.yellow, user?.name);
localStorage.setItem("oldName", oldUser); localStorage.setItem("oldName", oldUser);
@ -365,10 +370,10 @@ function handleChat(_url: string, _args: RouteHandlerParams): RouteHandlerReturn
window.addEventListener("focus", () => { window.addEventListener("focus", () => {
//nst bwhoami = document.getElementById('b-whoami') as HTMLButtonElement; //nst bwhoami = document.getElementById('b-whoami') as HTMLButtonElement;
if (window.location.pathname === '/app/chat') { if (window.location.pathname === '/app/chat') {
connected(socket);
console.log("%cWindow is focused on /chat:" + socket.id, color.green); console.log("%cWindow is focused on /chat:" + socket.id, color.green);
if (socket.id) { if (socket.id) {
windowStateVisable(); windowStateVisable();
connected(socket);
} }
toggle = true; toggle = true;
} }
@ -385,8 +390,7 @@ function handleChat(_url: string, _args: RouteHandlerParams): RouteHandlerReturn
// setInterval(async () => { // setInterval(async () => {
// //connected(socket); // //connected(socket);
// },10000); // every 10 seco // },10000); // every 10 seco
socket.on('listBud', async (myBuddies: string) => {
socket.on('listBud', (myBuddies: string) => {
const buddies = document.getElementById('div-buddies') as HTMLDivElement; const buddies = document.getElementById('div-buddies') as HTMLDivElement;
console.log('List buddies connected ', myBuddies); console.log('List buddies connected ', myBuddies);
listBuddies(buddies,myBuddies); listBuddies(buddies,myBuddies);
@ -455,7 +459,6 @@ function handleChat(_url: string, _args: RouteHandlerParams): RouteHandlerReturn
quitChat(socket); quitChat(socket);
break; break;
default: default:
const user = getUser()?.name; const user = getUser()?.name;
// Ensure we have a user AND socket is connected // Ensure we have a user AND socket is connected
if (!user || !socket.connected) return; if (!user || !socket.connected) return;

View file

@ -132,16 +132,16 @@ async function onReady(fastify: FastifyInstance) {
seen.add(username.user); seen.add(username.user);
count++; count++;
// console.log(color.green,"count: ", count); // console.log(color.green,"count: ", count);
console.log(color.yellow, 'Client:', color.reset, username.user); // console.log(color.yellow, 'Client:', color.reset, username.user);
const targetSocketId = target; const targetSocketId = target;
io.to(targetSocketId!).emit('listBud', username.user); io.to(targetSocketId!).emit('listBud', username.user);
console.log( // console.log(
color.yellow, // color.yellow,
'Chat Socket ID:', // 'Chat Socket ID:',
color.reset, // color.reset,
socketId, // socketId,
); // );
continue; continue;
} }
@ -203,11 +203,13 @@ async function onReady(fastify: FastifyInstance) {
console.log(color.yellow, `User: '${atUser}' (No user the same is found): '${data.command}' `); console.log(color.yellow, `User: '${atUser}' (No user the same is found): '${data.command}' `);
continue; continue;
} }
s.emit('MsgObjectServer', { message: data }); if (data.text !== "") {
if (senderSocket) s.emit('MsgObjectServer', { message: data });
senderSocket.emit('privMessageCopy',`${data.command}: ${data.text}🔒`); if (senderSocket)
// Debug logs senderSocket.emit('privMessageCopy',`${data.command}: ${data.text}🔒`);
console.log(color.green, 'Priv to:', clientInfo.user); // Debug logs
}
console.log(color.green, 'Priv to:', data.text);
} }
}); });
} }
@ -361,6 +363,7 @@ async function onReady(fastify: FastifyInstance) {
SenderWindowID: socket.id, SenderWindowID: socket.id,
}; };
console.log(color.blue, 'BROADCASTS OUT :', obj.SenderWindowID); console.log(color.blue, 'BROADCASTS OUT :', obj.SenderWindowID);
broadcast(obj, obj.SenderWindowID); broadcast(obj, obj.SenderWindowID);
// clientChat.delete(obj.user); // clientChat.delete(obj.user);
} }