From 8f00bade79ba4912ce8a1ab1cabb6ca4165a7a60 Mon Sep 17 00:00:00 2001 From: Nicholas Pease Date: Wed, 17 Apr 2024 23:24:08 -0400 Subject: [PATCH 1/3] Add message deletion for users messages only --- frontend-next/src/components/app/datatypes.js | 20 ++++++++++++++++--- .../src/components/app/friends/page.js | 2 ++ frontend-next/src/components/app/page/chat.js | 2 ++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/frontend-next/src/components/app/datatypes.js b/frontend-next/src/components/app/datatypes.js index e03dfff..973d383 100644 --- a/frontend-next/src/components/app/datatypes.js +++ b/frontend-next/src/components/app/datatypes.js @@ -1,8 +1,14 @@ import Link from "next/link" import { useEffect, useState } from "react"; +const Filter = require('bad-words') +const filter = new Filter(); + +import {database} from "../../../firebase-config" +import {remove, ref} from "firebase/database" // Icons import PersonIcon from '@mui/icons-material/Person'; +import DeleteOutlineIcon from '@mui/icons-material/DeleteOutline'; // Colors for Messages const userColors = [ @@ -95,18 +101,26 @@ const generateColor = (user_str) => { * @props {JSON} chatObj - Chat Object * @returns {Object} - Chat Message Component */ -export function Chat({ chatObj }) { +export function Chat({ chatObj, user, path }) { + + function deleteMessage() { + remove(ref(database, `/rooms/${path}/chats/${chatObj.timestamp}-${chatObj.user}`)) + } + var message = RMF(chatObj.body) + if (message) + message = filter.clean(message) return (
- + {user.uid == chatObj.uid && {deleteMessage()}}/>} + {chatObj.user} - : {message} + {message}
{new Date(chatObj.timestamp).toLocaleString(dateOptions)} diff --git a/frontend-next/src/components/app/friends/page.js b/frontend-next/src/components/app/friends/page.js index c9698a8..b83ed80 100644 --- a/frontend-next/src/components/app/friends/page.js +++ b/frontend-next/src/components/app/friends/page.js @@ -35,6 +35,8 @@ export function DMRoom({ roomObj, user }) { chatsArr.push( ); diff --git a/frontend-next/src/components/app/page/chat.js b/frontend-next/src/components/app/page/chat.js index 1af3db9..1374ea2 100644 --- a/frontend-next/src/components/app/page/chat.js +++ b/frontend-next/src/components/app/page/chat.js @@ -35,6 +35,8 @@ export function ChatRoom({ roomObj, user }) { chatsArr.push( ); From 3446ea47b4411699a1780f102e060dbe8c2eb1c0 Mon Sep 17 00:00:00 2001 From: Nicholas Pease Date: Thu, 18 Apr 2024 00:05:43 -0400 Subject: [PATCH 2/3] Add dependency to package.json --- package-lock.json | 28 ++++++++++++++++++++++++++++ package.json | 5 +++++ 2 files changed, 33 insertions(+) create mode 100644 package-lock.json create mode 100644 package.json diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..7865167 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,28 @@ +{ + "name": "ChatMaps", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "bad-words": "^3.0.4" + } + }, + "node_modules/bad-words": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/bad-words/-/bad-words-3.0.4.tgz", + "integrity": "sha512-v/Q9uRPH4+yzDVLL4vR1+S9KoFgOEUl5s4axd6NIAq8SV2mradgi4E8lma/Y0cw1ltVdvyegCQQKffCPRCp8fg==", + "dependencies": { + "badwords-list": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/badwords-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/badwords-list/-/badwords-list-1.0.0.tgz", + "integrity": "sha512-oWhaSG67e+HQj3OGHQt2ucP+vAPm1wTbdp2aDHeuh4xlGXBdWwzZ//pfu6swf5gZ8iX0b7JgmSo8BhgybbqszA==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..c04d041 --- /dev/null +++ b/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "bad-words": "^3.0.4" + } +} From 5eb2002d8e11a97398ab7a8d5204beb72660a3e4 Mon Sep 17 00:00:00 2001 From: Nicholas Pease Date: Thu, 18 Apr 2024 00:07:29 -0400 Subject: [PATCH 3/3] Install in proper directory --- frontend-next/package-lock.json | 17 +++++++++++++++++ frontend-next/package.json | 1 + package-lock.json | 28 ---------------------------- package.json | 5 ----- 4 files changed, 18 insertions(+), 33 deletions(-) delete mode 100644 package-lock.json delete mode 100644 package.json diff --git a/frontend-next/package-lock.json b/frontend-next/package-lock.json index d3182f5..69d6d5a 100644 --- a/frontend-next/package-lock.json +++ b/frontend-next/package-lock.json @@ -16,6 +16,7 @@ "@headlessui/react": "^1.7.18", "@mui/icons-material": "^5.15.14", "@mui/material": "^5.15.14", + "bad-words": "^3.0.4", "firebase": "^10.6.0", "next": "^14.1.0", "pigeon-maps": "^0.21.3", @@ -2893,6 +2894,22 @@ "npm": ">=6" } }, + "node_modules/bad-words": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/bad-words/-/bad-words-3.0.4.tgz", + "integrity": "sha512-v/Q9uRPH4+yzDVLL4vR1+S9KoFgOEUl5s4axd6NIAq8SV2mradgi4E8lma/Y0cw1ltVdvyegCQQKffCPRCp8fg==", + "dependencies": { + "badwords-list": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/badwords-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/badwords-list/-/badwords-list-1.0.0.tgz", + "integrity": "sha512-oWhaSG67e+HQj3OGHQt2ucP+vAPm1wTbdp2aDHeuh4xlGXBdWwzZ//pfu6swf5gZ8iX0b7JgmSo8BhgybbqszA==" + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", diff --git a/frontend-next/package.json b/frontend-next/package.json index 3c73bf5..82be4fc 100644 --- a/frontend-next/package.json +++ b/frontend-next/package.json @@ -17,6 +17,7 @@ "@headlessui/react": "^1.7.18", "@mui/icons-material": "^5.15.14", "@mui/material": "^5.15.14", + "bad-words": "^3.0.4", "firebase": "^10.6.0", "next": "^14.1.0", "pigeon-maps": "^0.21.3", diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 7865167..0000000 --- a/package-lock.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "ChatMaps", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "dependencies": { - "bad-words": "^3.0.4" - } - }, - "node_modules/bad-words": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/bad-words/-/bad-words-3.0.4.tgz", - "integrity": "sha512-v/Q9uRPH4+yzDVLL4vR1+S9KoFgOEUl5s4axd6NIAq8SV2mradgi4E8lma/Y0cw1ltVdvyegCQQKffCPRCp8fg==", - "dependencies": { - "badwords-list": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/badwords-list": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/badwords-list/-/badwords-list-1.0.0.tgz", - "integrity": "sha512-oWhaSG67e+HQj3OGHQt2ucP+vAPm1wTbdp2aDHeuh4xlGXBdWwzZ//pfu6swf5gZ8iX0b7JgmSo8BhgybbqszA==" - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index c04d041..0000000 --- a/package.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "dependencies": { - "bad-words": "^3.0.4" - } -}