{
display: 'flex',
alignItems: 'center',
gap: '5px',
- marginBottom: '2px',
}}
>
diff --git a/frontend/src/components/SlateComponents.js b/frontend/src/components/SlateComponents.js
index 4ed01f8..4875f8e 100644
--- a/frontend/src/components/SlateComponents.js
+++ b/frontend/src/components/SlateComponents.js
@@ -117,7 +117,7 @@ export const Element = ({ attributes, children, element }) => {
Date: Sun, 28 Jan 2024 18:29:12 -0500
Subject: [PATCH 7/8] cleaned up PR
---
backend/models/comment.model.js | 1 -
backend/routes/comments.routes.js | 3 +-
frontend/public/index.html | 2 +-
frontend/src/components/CommentInput.js | 43 +++++++------------------
frontend/src/components/CommentView.js | 31 +-----------------
frontend/src/utils/utils.js | 30 +++++++++++++++++
6 files changed, 45 insertions(+), 65 deletions(-)
diff --git a/backend/models/comment.model.js b/backend/models/comment.model.js
index 7018d82..a08431d 100644
--- a/backend/models/comment.model.js
+++ b/backend/models/comment.model.js
@@ -3,7 +3,6 @@ const { Schema } = mongoose
const Mixed = Schema.Types.Mixed
-//sort by new -> old for parent comments, old -> new for replies
const CommentSchema = new Schema(
{
// reference_code would be parent ticket/parent comment here
diff --git a/backend/routes/comments.routes.js b/backend/routes/comments.routes.js
index 906eace..e2c1bbd 100644
--- a/backend/routes/comments.routes.js
+++ b/backend/routes/comments.routes.js
@@ -9,7 +9,6 @@ router.route('/:id').get(authenticateUser, getAllCommentsController)
router.route('/').post(authenticateUser, createCommentController)
-//delete, edit and others can come later
-//shouldn't be too hard can just fully replace the comment part
+//TODO: delete & edit
module.exports = router
diff --git a/frontend/public/index.html b/frontend/public/index.html
index 43ff5e7..907eff8 100644
--- a/frontend/public/index.html
+++ b/frontend/public/index.html
@@ -1,4 +1,4 @@
-
+
diff --git a/frontend/src/components/CommentInput.js b/frontend/src/components/CommentInput.js
index c61840a..1e07b46 100644
--- a/frontend/src/components/CommentInput.js
+++ b/frontend/src/components/CommentInput.js
@@ -22,36 +22,22 @@ const HOTKEYS = {
'mod+u': 'underline',
}
+//Cleans leading and ending white space
const cleanInput = (val) => {
- const res = []
- let l = 0
- let r = val.length - 1
- while (l <= r) {
- if (val[l]['children'][0]['text'] == '') {
- l += 1
- }
- if (val[r]['children'][0]['text'] == '') {
- r += -1
- }
-
- if (
- val[l]['children'][0]['text'] != '' &&
- val[r]['children'][0]['text'] != ''
- ) {
- break
- }
+ const textList = val.map(item => item['children'][0]['text'])
+
+ const firstIndex = textList.findIndex(text => text != '')
+ if (firstIndex == -1) {
+ return []
}
- for (let i = l; i <= r; i++) {
- res.push(val[i])
- }
- return res
+
+ const lastIndex = textList.findLastIndex(text => text != '')
+
+ return val.slice(firstIndex, lastIndex + 1)
}
+//Disables the "send" button if input isn't valid
const invalidInput = (val) => {
- if (val.length === 0) {
- return true
- }
-
for (let i = 0; i < val.length; i++) {
if (val[i]['children'][0]['text'] != '') {
return false
@@ -71,7 +57,6 @@ const CommentInput = ({ code, getComments, reply, onClose, ticket }) => {
setLoading(true)
const comment = cleanInput(val)
if (comment.length === 0) {
- console.log('EMPTY')
return
}
const payload = {
@@ -171,8 +156,7 @@ const CommentInput = ({ code, getComments, reply, onClose, ticket }) => {
)
}
-// example taken from https://github.com/ianstormtaylor/slate/blob/main/site/components.tsx
-// remove once dynamically fetched from backend
+//TODO: If replying another reply, make the initial value quote the comment above (makes it easier to keep track who's replying to who)
const initialValue = [
{
type: 'paragraph',
@@ -181,6 +165,3 @@ const initialValue = [
]
export default CommentInput
-
-//make a function that removes white lines in the start
-//parses data to make it look nice
diff --git a/frontend/src/components/CommentView.js b/frontend/src/components/CommentView.js
index f61b5f9..7db147b 100644
--- a/frontend/src/components/CommentView.js
+++ b/frontend/src/components/CommentView.js
@@ -11,39 +11,10 @@ import {
PopoverContent,
HStack,
} from '@chakra-ui/react'
-
+import { timeAgo } from '../utils/utils'
import { Element, Leaf } from './SlateComponents'
import CommentInput from './CommentInput'
-const timeAgo = (dateString) => {
- const date = new Date(dateString)
- const now = new Date()
- const seconds = Math.round((now - date) / 1000)
- const minutes = Math.round(seconds / 60)
- const hours = Math.round(minutes / 60)
- const days = Math.round(hours / 24)
- const weeks = Math.round(days / 7)
- const months = Math.round(days / 30.44) // Average days per month
- const years = Math.round(days / 365)
-
- if (seconds < 60) {
- return 'Just now'
- } else if (minutes < 60) {
- return `${minutes} minute${minutes > 1 ? 's' : ''} ago`
- } else if (hours < 24) {
- return `${hours} hour${hours > 1 ? 's' : ''} ago`
- } else if (days < 7) {
- return `${days} day${days > 1 ? 's' : ''} ago`
- } else if (weeks < 4.35) {
- // Approximate weeks in a month
- return `${weeks} week${weeks > 1 ? 's' : ''} ago`
- } else if (months < 12) {
- return `${months} month${months > 1 ? 's' : ''} ago`
- } else {
- return `${years} year${years > 1 ? 's' : ''} ago`
- }
-}
-
const UserInfoPopUp = ({ author, img }) => {
return (
diff --git a/frontend/src/utils/utils.js b/frontend/src/utils/utils.js
index 1a8e8bd..01c6094 100644
--- a/frontend/src/utils/utils.js
+++ b/frontend/src/utils/utils.js
@@ -5,6 +5,36 @@ export const getStandardizedDate = (dateStr) => {
return date.format('YYYY-MM-DD')
}
+
+export const timeAgo = (dateString) => {
+ const date = new Date(dateString)
+ const now = new Date()
+ const seconds = Math.round((now - date) / 1000)
+ const minutes = Math.round(seconds / 60)
+ const hours = Math.round(minutes / 60)
+ const days = Math.round(hours / 24)
+ const weeks = Math.round(days / 7)
+ const months = Math.round(days / 30.44) // Average days per month
+ const years = Math.round(days / 365)
+
+ if (seconds < 60) {
+ return 'Just now'
+ } else if (minutes < 60) {
+ return `${minutes} minute${minutes > 1 ? 's' : ''} ago`
+ } else if (hours < 24) {
+ return `${hours} hour${hours > 1 ? 's' : ''} ago`
+ } else if (days < 7) {
+ return `${days} day${days > 1 ? 's' : ''} ago`
+ } else if (days < 30) {
+ // Approximate weeks in a month
+ return `${weeks} week${weeks > 1 ? 's' : ''} ago`
+ } else if (months < 12) {
+ return `${months} month${months > 1 ? 's' : ''} ago`
+ } else {
+ return `${years} year${years > 1 ? 's' : ''} ago`
+ }
+}
+
export const getFormattedCurrency = (currencyStr) => {
const currencyFormatter = new Intl.NumberFormat('en-CA', {
style: 'currency',
From dd8a3ed67dcbba551dde8547b7625e8dad589626 Mon Sep 17 00:00:00 2001
From: William Li <52115161+Trollermaner@users.noreply.github.com>
Date: Sun, 28 Jan 2024 20:31:46 -0500
Subject: [PATCH 8/8] ran prettier
---
frontend/src/components/CommentInput.js | 14 +++++++-------
frontend/src/components/SlateComponents.js | 2 --
frontend/src/utils/utils.js | 1 -
3 files changed, 7 insertions(+), 10 deletions(-)
diff --git a/frontend/src/components/CommentInput.js b/frontend/src/components/CommentInput.js
index 1e07b46..744a816 100644
--- a/frontend/src/components/CommentInput.js
+++ b/frontend/src/components/CommentInput.js
@@ -24,15 +24,15 @@ const HOTKEYS = {
//Cleans leading and ending white space
const cleanInput = (val) => {
- const textList = val.map(item => item['children'][0]['text'])
-
- const firstIndex = textList.findIndex(text => text != '')
+ const textList = val.map((item) => item['children'][0]['text'])
+
+ const firstIndex = textList.findIndex((text) => text != '')
if (firstIndex == -1) {
- return []
+ return []
}
-
- const lastIndex = textList.findLastIndex(text => text != '')
-
+
+ const lastIndex = textList.findLastIndex((text) => text != '')
+
return val.slice(firstIndex, lastIndex + 1)
}
diff --git a/frontend/src/components/SlateComponents.js b/frontend/src/components/SlateComponents.js
index 4875f8e..084f067 100644
--- a/frontend/src/components/SlateComponents.js
+++ b/frontend/src/components/SlateComponents.js
@@ -1,5 +1,3 @@
-// from https://github.com/ianstormtaylor/slate/blob/main/site/components.tsx
-// probably best not to touch.
import React from 'react'
import { Editor, Transforms, Element as SlateElement } from 'slate'
import ReactDOM from 'react-dom'
diff --git a/frontend/src/utils/utils.js b/frontend/src/utils/utils.js
index 01c6094..4bdfd45 100644
--- a/frontend/src/utils/utils.js
+++ b/frontend/src/utils/utils.js
@@ -5,7 +5,6 @@ export const getStandardizedDate = (dateStr) => {
return date.format('YYYY-MM-DD')
}
-
export const timeAgo = (dateString) => {
const date = new Date(dateString)
const now = new Date()