From c63383ba891bf7fda30fb51152a4baf417d840e1 Mon Sep 17 00:00:00 2001 From: Nicholas Pease <34464552+LAX18@users.noreply.github.com> Date: Wed, 3 Apr 2024 23:29:14 -0400 Subject: [PATCH 1/5] Update Config to work with JsDoc --- frontend-next/tailwind.config.js | 1 - 1 file changed, 1 deletion(-) diff --git a/frontend-next/tailwind.config.js b/frontend-next/tailwind.config.js index 1485f98..23ccd28 100644 --- a/frontend-next/tailwind.config.js +++ b/frontend-next/tailwind.config.js @@ -1,4 +1,3 @@ -/** @type {import('tailwindcss').Config} */ module.exports = { content: [ "./src/pages/**/*.{js,ts,jsx,tsx,mdx}", -- 2.52.0 From b319c0e6e47f420fb0901e2ff61224a927189588 Mon Sep 17 00:00:00 2001 From: Nicholas Pease <34464552+LAX18@users.noreply.github.com> Date: Wed, 3 Apr 2024 23:40:27 -0400 Subject: [PATCH 2/5] Create vercel.json --- vercel.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 vercel.json diff --git a/vercel.json b/vercel.json new file mode 100644 index 0000000..e686f30 --- /dev/null +++ b/vercel.json @@ -0,0 +1,7 @@ +{ + "git": { + "deploymentEnabled": { + "gh-pages": false + } + } +} -- 2.52.0 From c4be27dadadf672bee4a314932c49a8e204793a7 Mon Sep 17 00:00:00 2001 From: Nicholas Pease <34464552+LAX18@users.noreply.github.com> Date: Wed, 3 Apr 2024 23:48:58 -0400 Subject: [PATCH 3/5] Move vercel.json --- frontend-next/vercel.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 frontend-next/vercel.json diff --git a/frontend-next/vercel.json b/frontend-next/vercel.json new file mode 100644 index 0000000..e686f30 --- /dev/null +++ b/frontend-next/vercel.json @@ -0,0 +1,7 @@ +{ + "git": { + "deploymentEnabled": { + "gh-pages": false + } + } +} -- 2.52.0 From f6873efcdd999c7f46510b7ecc02b8122fcd5d91 Mon Sep 17 00:00:00 2001 From: Nicholas Pease <34464552+LAX18@users.noreply.github.com> Date: Wed, 3 Apr 2024 23:49:20 -0400 Subject: [PATCH 4/5] Delete vercel.json --- vercel.json | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 vercel.json diff --git a/vercel.json b/vercel.json deleted file mode 100644 index e686f30..0000000 --- a/vercel.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "git": { - "deploymentEnabled": { - "gh-pages": false - } - } -} -- 2.52.0 From a1e1f2813719144b7c766fd1eeddd04bc290cca0 Mon Sep 17 00:00:00 2001 From: Nicholas Pease Date: Thu, 4 Apr 2024 04:16:08 +0000 Subject: [PATCH 5/5] Restore Rooms User Leave/Enter Status --- frontend-next/src/app/chat/page.js | 22 +++++++++++++++--- frontend-next/src/components/app/header.js | 27 ++++------------------ 2 files changed, 24 insertions(+), 25 deletions(-) diff --git a/frontend-next/src/app/chat/page.js b/frontend-next/src/app/chat/page.js index 055afda..ded180d 100644 --- a/frontend-next/src/app/chat/page.js +++ b/frontend-next/src/app/chat/page.js @@ -4,7 +4,7 @@ import { useState, useEffect } from "react"; // Firebase Imports import { auth, database } from "../../../firebase-config"; -import { ref, onValue, set } from "firebase/database"; +import { ref, onValue, set, onDisconnect, serverTimestamp } from "firebase/database"; import { useAuthState } from "react-firebase-hooks/auth" // Component Imports @@ -43,7 +43,7 @@ function Chat() { const searchParams = new URLSearchParams(document.location.search); var path = searchParams.get("room") - // Send entered message + /*// Send entered message var payload = { body: "entered", user: user.username, @@ -57,7 +57,23 @@ function Chat() { `/rooms/${path}/chats/${new Date().getTime()}-${user.username}` ), payload - ); + );*/ + + // Add user to online for room + set(ref(database, `/rooms/${path}/users/online/${user.uid}`), user) + + // Removes user from room on disconnect (reload, window close, internet lost) + onDisconnect(ref(database, `/rooms/${path}/users/online/${user.uid}`)).remove() + + // Sends leaving message on disconnect (Timestamp function used due to new onDisconnect stuff) + /*someRef = ref(database, `/rooms/${path}/chats/${new Date().getTime()}-${user.username}`) + onDisconnect(someRef).set({ + body: "left", + user: user.username, + isSystem: true, + timestamp: serverTimestamp(), + uid: user.uid, + })*/ onValue(ref(database, `/rooms/${path}`), (roomData) => { roomData = roomData.val(); diff --git a/frontend-next/src/components/app/header.js b/frontend-next/src/components/app/header.js index 29dc01b..49f7d2d 100644 --- a/frontend-next/src/components/app/header.js +++ b/frontend-next/src/components/app/header.js @@ -10,28 +10,13 @@ import { NotificationPanel } from "./notifications/notifications"; import { ProfilePanel } from "./profile/ProfilePanel" /** - * Closes Open Chat Room - * @param {JSON} roomObj - Room Object + * Closes Chat + * @param {JSON} chatRoomObj - Chat Room Object * @param {JSON} user - User Object * @returns {void} */ -function closeChatRoom(roomObj, user) { - var path = roomObj.path + "/" + roomObj.name + "-" + roomObj.timestamp; - var payload = { - body: "left", - user: user.username, - isSystem: true, - timestamp: new Date().getTime(), - uid: user.uid, - }; - set( - ref( - database, - `/rooms/${path}/chats/${new Date().getTime()}-${user.username}` - ), - payload - ); - remove(ref(database, `/rooms/${path}/users/online/${user.uid}`)); +function closeChat(chatRoomObj, user) { + remove(ref(database, `/rooms/${chatRoomObj.path}/${chatRoomObj.name}-${chatRoomObj.timestamp}/users/online/${user.uid}`)) } /** @@ -129,11 +114,9 @@ export function Header({mainTab,chatRoomObj,user,}) { )} {mainTab == "chat" && ( { - closeChatRoom(chatRoomObj, user); - }} href="/app" className="p-2 cursor-pointer bg-cyan-500 text-white font-bold rounded-full mr-5 flex items-center" + onClick={() => {closeChat(chatRoomObj,user)}} > Close Chat -- 2.52.0