This commit is contained in:
2024-12-06 13:27:22 +11:00
parent 7ff5447388
commit e463d3dd2b
3 changed files with 219 additions and 112 deletions

View File

@@ -1,16 +1,5 @@
alert("Chookchat is currently in early development, expect bugs! Please don't try breaking the public server, do that with your own test server (read more in the Git repo). Thanks for trying Chookchat!")
const width = $(document).width();
if (width < 512) {
console.log("enlarging");
const loginDiv = document.getElementById('login');
if (loginDiv) {
console.log(loginDiv.style.width = `${width}px`);
console.log("enlarged?");
}
}
let ws;
let username;
let password;
@@ -21,12 +10,11 @@ let api;
function resizeMessaging() {
const messagingDiv = document.getElementById('messaging');
if (messagingDiv) {
messagingDiv.style.width = `${window.innerWidth - 40}px`; // -40 for body margins
messagingDiv.style.height = `${window.innerHeight - 40}px`; // -40 for body margins
messagingDiv.style.width = `${window.innerWidth - 40}px`;
messagingDiv.style.height = `${window.innerHeight - 40}px`;
}
}
// Call it initially
resizeMessaging();
// Add resize listener to handle window resizing
@@ -105,7 +93,6 @@ function connect() {
"content": `${username} joined the room!`
}
ws.send(JSON.stringify(connectMessage));
console.log(typingPeople);
ws.onmessage = (event) => {
if (event.data === "ping") {
ws.send("pong");
@@ -131,33 +118,29 @@ function connect() {
}
}
}
if (message.type == "typing" && message.content == "1") {
console.log(`${message.username} is typing`);
else if (message.type == "typing" && message.content == "1") {
if (username !== message.username && !typingPeople.includes(message.username)) {
typingPeople.push(message.username);
console.log(typingPeople);
updatePeopleTyping();
}
return;
}
if (message.type == "typing" && message.content == "0") {
console.log(`${message.username} is no longer typing`)
else if (message.type == "typing" && message.content == "0") {
if (username !== message.username && typingPeople.includes(message.username)) {
const index = typingPeople.indexOf(message.username);
typingPeople.splice(index, 1);
console.log(typingPeople);
updatePeopleTyping();
}
return;
}
if (message.type == "users" && message.username == "system") {
else if (message.type == "users" && message.username == "system") {
usersDiv = document.getElementById("users");
if (usersDiv) {
usersDiv.textContent = `Online users: ${message.content}`
}
return;
}
if (message.type == "file") {
else if (message.type == "file") {
const messagesDiv = document.getElementById('messagebox');
const fileElement = document.createElement('embed');
if (fileElement) {
@@ -174,7 +157,7 @@ function connect() {
}
return;
}
if (message.type == "call") {
else if (message.type == "call") {
const messagesDiv = document.getElementById('messagebox');
const callButton = document.createElement('div');
if (callButton) {
@@ -190,18 +173,39 @@ function connect() {
}
}
}
const messagesDiv = document.getElementById('messagebox');
const messageElement = document.createElement('div');
if (messageElement) {
if (messagesDiv) {
messagesDiv.appendChild(messageElement);
messageElement.className = 'message';
messageElement.textContent = `${message.username}: ${message.content}` ;
messagesDiv.scrollTop = messagesDiv.scrollHeight;
else if (message.type == "connect") {
const messagesDiv = document.getElementById('messagebox');
const messageElement = document.createElement('div');
if (messageElement) {
if (messagesDiv) {
messagesDiv.appendChild(messageElement);
messageElement.className = 'message';
messageElement.textContent = message.content;
messagesDiv.scrollTop = messagesDiv.scrollHeight;
}
}
if (document.hidden) {
const notifiction = new Notification("Chookchat", {body: messageElement.textContent});
}
}
if (document.hidden) {
const notifiction = new Notification("Chookchat", {body: messageElement.textContent});
else if (message.type == "message") {
const messagesDiv = document.getElementById('messagebox');
const messageElement = document.createElement('div');
if (messageElement) {
if (messagesDiv) {
messagesDiv.appendChild(messageElement);
messageElement.className = 'message';
messageElement.textContent = `${message.username}: ${message.content}` ;
messagesDiv.scrollTop = messagesDiv.scrollHeight;
}
}
if (document.hidden) {
const notifiction = new Notification("Chookchat", {body: messageElement.textContent});
}
}
// Egg message logic
else {
return
}
};
}
@@ -257,7 +261,6 @@ function showFileUpload() {
}
async function uploadFile() {
console.log("placeholder");
const fileInput = document.getElementById("fileupload");
if (!fileInput.files.length) {
@@ -397,3 +400,24 @@ function startMeeting() {
}
document.getElementById('messageInput').addEventListener('input', startTypingIndicator);
function showEggs() {
const eggsPanel = document.getElementById('eggs');
eggsPanel.style.display = "block";
// Adjust main box width when eggs panel is toggled
const mainBox = document.querySelector('#messaging .box');
if (eggsPanel.classList.contains('visible')) {
mainBox.style.width = 'calc(100% - 310px)';
} else {
mainBox.style.width = '100%';
}
}
function closeEggs() {
const eggsPanel = document.getElementById('eggs');
eggsPanel.style.display = "block";
}
// Eggs begin here