diff --git a/app/src/components/layout/scenes/MainScene.tsx b/app/src/components/layout/scenes/MainScene.tsx index f5e0c72..350c9e9 100644 --- a/app/src/components/layout/scenes/MainScene.tsx +++ b/app/src/components/layout/scenes/MainScene.tsx @@ -212,7 +212,11 @@ function MainScene() { {activeModule !== "market" && !selectedUser && } - {(commentPositionState !== null || selectedComment !== null) && } + + { + (commentPositionState !== null || selectedComment !== null) && + + } > ); diff --git a/app/src/components/ui/collaboration/Messages.tsx b/app/src/components/ui/collaboration/Messages.tsx index b3f37e1..11e87b2 100644 --- a/app/src/components/ui/collaboration/Messages.tsx +++ b/app/src/components/ui/collaboration/Messages.tsx @@ -231,7 +231,10 @@ const Messages: React.FC = ({ val, i, setMessages, mode, setIsEdit {isEditableThread ? getRelativeTime(val.createdAt) : val.createdAt} {(val as Reply).creatorId === userId && ( - + setOpenOptions(false)} + > { @@ -240,35 +243,41 @@ const Messages: React.FC = ({ val, i, setMessages, mode, setIsEdit > + {openOptions && ( { e.preventDefault(); - setMode && setMode("edit") + setMode && setMode("edit"); setOpenOptions(false); setEditedThread && setEditedThread(true); - setIsEditComment(true) + setIsEditComment(true); }} > Edit - {!(isEditableThread) && { - handleDeleteAction((val as Reply).replyId); - }} - > - Delete - } + + {!isEditableThread && ( + { + handleDeleteAction((val as Reply).replyId); + }} + > + Delete + + )} )} )} + {"comment" in val ? val.comment : val.threadTitle} + )} diff --git a/app/src/components/ui/collaboration/ThreadChat.tsx b/app/src/components/ui/collaboration/ThreadChat.tsx index 8e4b24b..5370689 100644 --- a/app/src/components/ui/collaboration/ThreadChat.tsx +++ b/app/src/components/ui/collaboration/ThreadChat.tsx @@ -131,9 +131,10 @@ const ThreadChat: React.FC = () => { if (dragging) updatePosition(e, true); }; - useEffect(() => { - updatePosition({ clientX: position.x, clientY: position.y }, true); - }, [selectedComment]); + // Commented this useEffect to prevent offset after user saved the comment + // useEffect(() => { + // updatePosition({ clientX: position.x, clientY: position.y }, true); + // }, [selectedComment]); const handlePointerUp = (event: React.PointerEvent) => { @@ -144,6 +145,10 @@ const ThreadChat: React.FC = () => { }; const handleCreateComments = async (e: any) => { + // Continue send or create message only there is only value avalibale + // To prevent empty value + + if (!value) return; e.preventDefault(); try { // const createComments = await addCommentsApi(projectId, value, selectedComment?.threadId, selectedVersion?.versionId || "")/ @@ -163,6 +168,7 @@ const ThreadChat: React.FC = () => { // } + if (threadSocket && mode === "create") { const addComment = { versionId: selectedVersion?.versionId || "", @@ -190,7 +196,7 @@ const ThreadChat: React.FC = () => { // removeComment(selectedComment?.threadId) // setSelectedComment([]) // } - console.log('threadSocket:threadChat ', threadSocket); + if (threadSocket) { // projectId, userId, organization, threadId const deleteThread = { @@ -258,7 +264,7 @@ const ThreadChat: React.FC = () => { }; if (threadSocket) { - console.log('createThread: ', createThread); + setInputActive(false); threadSocket.emit("v1:thread:create", createThread); diff --git a/app/src/styles/scene/comments.scss b/app/src/styles/scene/comments.scss index 480594a..ed4a1be 100644 --- a/app/src/styles/scene/comments.scss +++ b/app/src/styles/scene/comments.scss @@ -171,8 +171,8 @@ .messages-wrapper { padding: 12px; padding-top: 0; - max-height: 50vh; - overflow-y: auto; + max-height: 36vh; + overflow: auto; .edit-container { .input-container { textarea {