import React, { useState, useEffect } from 'react'; import { getPost, deletePost } from '../services/api'; import Button from './Button'; import CommentSection from './CommentSection'; const PostDetail = ({ postId, onClose, onDeleteSuccess, userName }) => { const [post, setPost] = useState(null); const [isLoading, setIsLoading] = useState(true); const [error, setError] = useState(''); // 포스트 상세 정보 불러오기 const fetchPostDetail = async () => { setIsLoading(true); setError(''); try { const fetchedPost = await getPost(postId); setPost(fetchedPost); } catch (err) { console.error('포스트 상세 정보 불러오기 오류:', err); setError('포스트를 불러오는데 실패했습니다.'); } finally { setIsLoading(false); } }; // 컴포넌트 마운트 시 포스트 상세 정보 불러오기 useEffect(() => { if (postId) { fetchPostDetail(); } }, [postId]); // 포스트 삭제 처리 const handleDelete = async () => { if (!window.confirm('정말로 이 포스트를 삭제하시겠습니까?')) { return; } try { await deletePost(postId); if (onDeleteSuccess) { onDeleteSuccess(); } if (onClose) { onClose(); } } catch (err) { console.error('포스트 삭제 오류:', err); setError('포스트 삭제에 실패했습니다.'); } }; // 날짜 포맷팅 const formatDate = (dateString) => { const options = { year: 'numeric', month: 'long', day: 'numeric', hour: '2-digit', minute: '2-digit' }; return new Date(dateString).toLocaleDateString('ko-KR', options); }; if (isLoading) { return (
포스트를 불러오는 중...
{error}
{post.content}
{formatDate(post.createdAt)}