|
@@ -1,6 +1,6 @@
|
|
import { url } from "../../App";
|
|
import { url } from "../../App";
|
|
import { useHistory } from "react-router-dom";
|
|
import { useHistory } from "react-router-dom";
|
|
-import { useEffect, useState } from "react";
|
|
|
|
|
|
+import { useState } from "react";
|
|
|
|
|
|
import {
|
|
import {
|
|
Avatar,
|
|
Avatar,
|
|
@@ -15,28 +15,18 @@ import { FavoriteBorderRounded } from '@mui/icons-material/'
|
|
|
|
|
|
import './style.scss'
|
|
import './style.scss'
|
|
|
|
|
|
-import { CommentContext } from "./card_post";
|
|
|
|
|
|
+import { CommentContext } from "./comments";
|
|
import { useContext } from "react";
|
|
import { useContext } from "react";
|
|
-import { connect, useSelector } from "react-redux";
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+import { useSelector } from "react-redux";
|
|
|
|
|
|
|
|
|
|
function CommentCard({ data }) {
|
|
function CommentCard({ data }) {
|
|
// console.log('data: ', data)
|
|
// console.log('data: ', data)
|
|
|
|
|
|
- const [comment, setComment] = useContext(CommentContext)
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- const addNewComment = useSelector(state => state?.promise?.CreateComment?.payload)
|
|
|
|
- useEffect(() => { }, [addNewComment])
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
const history = useHistory()
|
|
const history = useHistory()
|
|
|
|
|
|
|
|
+ const [comment, setComment] = useContext(CommentContext)
|
|
|
|
+
|
|
// дата поста
|
|
// дата поста
|
|
const dateofPost = new Date(+data?.createdAt)
|
|
const dateofPost = new Date(+data?.createdAt)
|
|
const months = ['января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря']
|
|
const months = ['января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря']
|
|
@@ -45,15 +35,13 @@ function CommentCard({ data }) {
|
|
${dateofPost.getFullYear()}
|
|
${dateofPost.getFullYear()}
|
|
${dateofPost.getHours() < 10 ? '0' + dateofPost.getHours() : dateofPost.getHours()}:${dateofPost.getMinutes() < 10 ? '0' + dateofPost.getMinutes() : dateofPost.getMinutes()}`
|
|
${dateofPost.getHours() < 10 ? '0' + dateofPost.getHours() : dateofPost.getHours()}:${dateofPost.getMinutes() < 10 ? '0' + dateofPost.getMinutes() : dateofPost.getMinutes()}`
|
|
|
|
|
|
-
|
|
|
|
- // let answerToCommentData
|
|
|
|
// скрываем/открываем вложенные комментарии
|
|
// скрываем/открываем вложенные комментарии
|
|
const [openComments, setOpenComments] = useState('Посмотреть ответы')
|
|
const [openComments, setOpenComments] = useState('Посмотреть ответы')
|
|
// скрываем/открываем блок с ответами на комментарии
|
|
// скрываем/открываем блок с ответами на комментарии
|
|
const [toggleAnswerToBlock, setToggleAnswerToBlock] = useState(false)
|
|
const [toggleAnswerToBlock, setToggleAnswerToBlock] = useState(false)
|
|
|
|
|
|
// функция скрытия/открытия ответов на комменты
|
|
// функция скрытия/открытия ответов на комменты
|
|
- async function changeText() {
|
|
|
|
|
|
+ async function toggleBlock() {
|
|
setToggleAnswerToBlock(!toggleAnswerToBlock)
|
|
setToggleAnswerToBlock(!toggleAnswerToBlock)
|
|
|
|
|
|
return (openComments === 'Посмотреть ответы'
|
|
return (openComments === 'Посмотреть ответы'
|
|
@@ -62,22 +50,20 @@ function CommentCard({ data }) {
|
|
)
|
|
)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ // функция перехода на страницу профиля
|
|
function toAccount(id) {
|
|
function toAccount(id) {
|
|
history.push(`/user/${id}`)
|
|
history.push(`/user/${id}`)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ // функция перевода фокуса в поле комментария при ответе на комментарий
|
|
function addCommentFocus() {
|
|
function addCommentFocus() {
|
|
const inputField = document.getElementById('addCommentField')
|
|
const inputField = document.getElementById('addCommentField')
|
|
|
|
|
|
// ставим фокус на поле добавления комментариев
|
|
// ставим фокус на поле добавления комментариев
|
|
inputField.focus()
|
|
inputField.focus()
|
|
|
|
|
|
- // добавляем ник, кому будем отвечать, в поле комментариев с припиской "@"
|
|
|
|
|
|
+ // добавляем ник, кому будем отвечать, в поле комментариев с припиской "@" и добавляем параметр answerTo для запроса на бек
|
|
setComment({ ...comment, text: `@${data?.owner?.login} `, answerTo: { _id: data._id } })
|
|
setComment({ ...comment, text: `@${data?.owner?.login} `, answerTo: { _id: data._id } })
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -215,7 +201,7 @@ function CommentCard({ data }) {
|
|
sx={{
|
|
sx={{
|
|
cursor: 'pointer'
|
|
cursor: 'pointer'
|
|
}}
|
|
}}
|
|
- onClick={() => changeText(data?._id)}
|
|
|
|
|
|
+ onClick={() => toggleBlock(data?._id)}
|
|
>
|
|
>
|
|
{openComments}
|
|
{openComments}
|
|
</Typography>
|
|
</Typography>
|
|
@@ -237,7 +223,4 @@ function CommentCard({ data }) {
|
|
)
|
|
)
|
|
}
|
|
}
|
|
|
|
|
|
-// const CCommentCard = connect(state => ({ comments: state?.promise?.FindComments?.payload }))(CommentCard)
|
|
|
|
-// export default CCommentCard
|
|
|
|
-
|
|
|
|
export default CommentCard
|
|
export default CommentCard
|