diff --git a/app/auth.js b/app/auth.js index de715b1..b42d2a2 100644 --- a/app/auth.js +++ b/app/auth.js @@ -467,7 +467,7 @@ export const auth = betterAuth({ organization(), multiSession(), expo(), - bearer(), + bearer(), ], trustedOrigins: [process.env.BETTER_AUTH_URL], }) \ No newline at end of file diff --git a/app/auth.ts b/app/auth.ts index 434ffcc..b20d0eb 100644 --- a/app/auth.ts +++ b/app/auth.ts @@ -467,7 +467,7 @@ export const auth = betterAuth({ organization(), multiSession(), expo(), - bearer(), + bearer(), ], trustedOrigins: [process.env.BETTER_AUTH_URL], }) \ No newline at end of file diff --git a/app/client/global/styles.css b/app/client/global/styles.css index 9a4c9bc..37b4db2 100644 --- a/app/client/global/styles.css +++ b/app/client/global/styles.css @@ -29,7 +29,7 @@ body { top: 0px; left: 0px; width: 100vw; - height: 100vh; + height: 100dvh; background-color: #f4f4f4; font-family: 'Figtree', sans-serif; user-select: none; diff --git a/app/client/pages/channelpage.html b/app/client/pages/channelpage.html index 88d70a5..6025b06 100644 --- a/app/client/pages/channelpage.html +++ b/app/client/pages/channelpage.html @@ -32,8 +32,8 @@ if (element.parentmessageid == undefined) { if (lastsenderid == element.userid) { $("#messagearea").append(` -
- +
+ ` + sanitizeHTML(element.content) + ` @@ -52,9 +52,9 @@ } }) $("#messagearea").append(` -
+
- + ` + sanitizeHTML(element.sendername) + ` ` + monthNames[d.getMonth()] + " " + d.getDate().toString() + " " + (d.getHours() < 10 ? '0' : '') + d.getHours().toString() + ":" + (d.getMinutes() < 10 ? '0' : '') + d.getMinutes().toString() + ` @@ -68,6 +68,14 @@ `) } lastsenderid = element.userid + } else { + var refmessage = $("#messagearea").find("[data-messageid='" + element.parentmessageid + "']") + if(refmessage.attr("isthread") != "true") { + refmessage.attr("isthread", "true") + refmessage.find(".mstack").append(` +
View Thread
+ `) + } } // Broken Code @@ -124,8 +132,8 @@ } if (lastsenderid == element.sender) { $("#messagearea").append(` -
- +
+ ` + sanitizeHTML(element.content) + ` @@ -145,9 +153,9 @@ } }) $("#messagearea").append(` -
+
- + ` + sanitizeHTML(element.sendername) + ` ` + monthNames[d.getMonth()] + " " + d.getDate().toString() + " " + (d.getHours() < 10 ? '0' : '') + d.getHours().toString() + ":" + (d.getMinutes() < 10 ? '0' : '') + d.getMinutes().toString() + ` @@ -167,29 +175,14 @@ } var sendmessage = function(msg) { - fetch("/api/channel/" + currentchannelid + "/messages/send?message=" + msg, { - "method": "POST", - }) - - .then(function (response) { - console.log(response.status); - return response.text(); - }) - - .then(function (data) { - console.log(data); - }) - - .catch(function (error) { - console.log(error.message); - }); - socket.emit("clatter.channel.message.send", JSON.stringify({ "room": currentchannelid, "userid": authsession.data.user.id, "sendername": authsession.data.user.name, "content": msg, - "type": "text" + "type": "text", + "method": "modern", + "token": authsession.data.session.token, })) } diff --git a/app/client/pages/channelthreadpage.html b/app/client/pages/channelthreadpage.html index 81e628c..5913983 100644 --- a/app/client/pages/channelthreadpage.html +++ b/app/client/pages/channelthreadpage.html @@ -223,30 +223,15 @@ } var sendmessage = function(msg) { - fetch("/api/channel/" + currentchannelid + "/thread/" + currentmessageid + "/send?message=" + msg, { - "method": "POST", - }) - - .then(function (response) { - console.log(response.status); - return response.text(); - }) - - .then(function (data) { - console.log(data); - }) - - .catch(function (error) { - console.log(error.message); - }); - socket.emit("clatter.channel.message.send", JSON.stringify({ "room": currentchannelid, "userid": authsession.data.user.id, "sendername": authsession.data.user.name, "content": msg, "type": "text", - "parentmessageid": currentmessageid + "parentmessageid": currentmessageid, + "method": "modern", + "token": authsession.data.session.token, })) } diff --git a/app/server.js b/app/server.js index 7f9a358..2c68947 100644 --- a/app/server.js +++ b/app/server.js @@ -10,15 +10,19 @@ import { createServer } from "http" const app = express(); const server = createServer(app) const prisma = new PrismaClient() -const io = new Server(server) +const io = new Server(server, { + cors: { + origin: "*", + }, +}) -// app.use( -// cors({ -// origin: "*", // Replace with your frontend's origin -// methods: ["GET", "POST", "PUT", "DELETE"], // Specify allowed HTTP methods -// credentials: true, // Allow credentials (cookies, authorization headers, etc.) -// }) -// ); +app.use( + cors({ + origin: "*", // Replace with your frontend's origin + methods: ["GET", "POST", "PUT", "DELETE"], // Specify allowed HTTP methods + credentials: true, // Allow credentials (cookies, authorization headers, etc.) + }) +); app.all("/api/auth/*", toNodeHandler(auth)); @@ -250,6 +254,29 @@ io.on("connection", (socket) => { argjson.DateCreated = new Date().toISOString() + if(argjson.method === "modern") { + const session = await auth.api.getSession({ + headers: new Headers({ + authorization: "Bearer " + argjson.token + }) + }); + if(argjson.parentmessageid) { + var parentid = argjson.parentmessageid + } else { + var parentid = null + } + var message = await prisma.message.create({ + data: { + content: argjson.content, + sender: session.session.userId, + parentid: argjson.room, + parentmessageid: parentid, + sendername: session.user.name + } + }) + argjson.id = message.id + } + socket.emit("clatter.channel.message.send.response", "Sent Message") socket.to(argjson.room).emit("clatter.channel.message.recieve", JSON.stringify(argjson)) })