import ClassicEditor from "@ckeditor/ckeditor5-build-classic"; import { CKEditor } from "@ckeditor/ckeditor5-react"; import React, { useState } from "react"; import { urlForLocal } from "@utils/helper"; import { apiRequest } from "@api/request"; import { getCorrectDate } from "@components/Calendar/calendarHelper"; import TrackerTaskSubComment from "@components/TrackerTaskComment/TrackerTaskComment"; import del from "assets/icons/delete.svg"; import edit from "assets/icons/edit.svg"; import accept from "assets/images/accept.png"; import avatarMok from "assets/images/avatarMok.png"; export const TrackerTaskComment = ({ taskId, comment, commentDelete, addSubComment, subCommentDelete, }) => { const [commentsEditOpen, setCommentsEditOpen] = useState(false); const [commentsEditText, setCommentsEditText] = useState(comment.text); const [subCommentsCreateOpen, setSubCommentsCreateOpen] = useState(false); const [subCommentsCreateText, setSubCommentsCreateText] = useState(""); function editComment() { if (commentsEditText === comment.text) return; apiRequest("/comment/update", { method: "PUT", data: { comment_id: comment.id, text: commentsEditText, }, }).then(() => {}); } function deleteComment() { apiRequest("/comment/update", { method: "PUT", data: { comment_id: comment.id, status: 0, }, }).then(() => { if (comment.parent_id) { subCommentDelete(comment); } else { commentDelete(comment); } }); } function createSubComment() { setSubCommentsCreateOpen(false); if (!subCommentsCreateText) return; apiRequest("/comment/create", { method: "POST", data: { text: subCommentsCreateText, entity_type: 2, entity_id: taskId, parent_id: comment.id, }, }).then((res) => { let newSubComment = res; newSubComment.created_at = new Date(); setSubCommentsCreateText(""); addSubComment(comment.id, newSubComment); }); } return (
avatar

{comment.user.fio}

{getCorrectDate(comment.created_at)} {comment.user_id === Number(localStorage.getItem("id")) && ( <>
edit { if (commentsEditOpen) { editComment(); } setCommentsEditOpen(!commentsEditOpen); }} />
delete deleteComment()} /> )}
{commentsEditOpen ? ( { const data = editor.getData(); setCommentsEditText(data); }} /> ) : (

)} {!comment.parent_id && !commentsEditOpen && ( <> {subCommentsCreateOpen ? (

{ setSubCommentsCreateText(e.target.value); }} /> accept { createSubComment(); }} />
) : ( { setSubCommentsCreateOpen(true); }} className="comments__list__item__answer" > Ответить )} )} {Boolean(comment.subComments?.length) && comment.subComments.map((subComment) => { return ( ); })}
); }; export default TrackerTaskComment;