Update files

This commit is contained in:
glpshchn 2025-12-04 23:53:54 +03:00
parent ed8917e8dd
commit dfa64eccb4
1 changed files with 17 additions and 17 deletions

View File

@ -1,4 +1,4 @@
import { useState, useEffect } from 'react' import { useState, useEffect, useCallback } from 'react'
import { createPortal } from 'react-dom' import { createPortal } from 'react-dom'
import { X, Send } from 'lucide-react' import { X, Send } from 'lucide-react'
import { commentPost, getPosts } from '../utils/api' import { commentPost, getPosts } from '../utils/api'
@ -10,20 +10,17 @@ export default function CommentsModal({ post, onClose, onUpdate }) {
const [comment, setComment] = useState('') const [comment, setComment] = useState('')
const [loading, setLoading] = useState(false) const [loading, setLoading] = useState(false)
const [comments, setComments] = useState([]) const [comments, setComments] = useState([])
const [fullPost, setFullPost] = useState(post) const [fullPost, setFullPost] = useState(null)
const [loadingPost, setLoadingPost] = useState(false) const [loadingPost, setLoadingPost] = useState(false)
// Загрузить полные данные поста с комментариями // Загрузить полные данные поста с комментариями
useEffect(() => { const loadFullPost = useCallback(async () => {
if (post?._id) { if (!post?._id) {
loadFullPost() setFullPost(post || null)
} else {
setFullPost(post)
setComments(post?.comments || []) setComments(post?.comments || [])
return
} }
}, [post?._id])
const loadFullPost = async () => {
try { try {
setLoadingPost(true) setLoadingPost(true)
const response = await getPosts() const response = await getPosts()
@ -44,11 +41,18 @@ export default function CommentsModal({ post, onClose, onUpdate }) {
} finally { } finally {
setLoadingPost(false) setLoadingPost(false)
} }
} }, [post])
// Проверка на существование поста useEffect(() => {
if (post) {
setFullPost(post)
setComments(post.comments || [])
loadFullPost()
}
}, [post, loadFullPost])
// Проверка на существование поста ПОСЛЕ хуков
if (!post) { if (!post) {
console.error('[CommentsModal] Post is missing')
return null return null
} }
@ -95,10 +99,6 @@ export default function CommentsModal({ post, onClose, onUpdate }) {
} }
} }
if (!post) {
return null
}
return createPortal( return createPortal(
<div <div
className="comments-modal-overlay" className="comments-modal-overlay"