修改帖子

Change-Id: I467b35242bce8b27d612eb96f2710b27aa03d1d2
diff --git a/src/pages/Forum/posts-detail/PostDetailPage.jsx b/src/pages/Forum/posts-detail/PostDetailPage.jsx
index a505d88..159bdfa 100644
--- a/src/pages/Forum/posts-detail/PostDetailPage.jsx
+++ b/src/pages/Forum/posts-detail/PostDetailPage.jsx
@@ -1,9 +1,9 @@
-import React, { useEffect, useState } from 'react';
+import React, { useContext, useEffect, useState } from 'react';
 import { useParams } from 'wouter';
 import { GoodTwo, Star } from '@icon-park/react';
 import { getPostDetail, getPostComments, likePost, unlikePost, addCommentToPost, collectPost, uncollectPost } from './api'; // 引入你的 API 函数
 import './PostDetailPage.css';
-import { useUser } from '../../../context/UserContext'; // 注意路径
+import { UserContext, useUser } from '../../../context/UserContext'; // 注意路径
 import Header from '../../../components/Header';
 
 const PostDetailPage = () => {
@@ -20,7 +20,8 @@
   const [replyToUsername, setReplyToUsername] = useState(null);
 
   // 获取当前用户ID(假设从上下文中获取)
-  const { user } = useUser(); // 你需要从用户上下文获取用户 ID
+  const { user } = useContext(UserContext);
+  // const { user } = useUser(); // 你需要从用户上下文获取用户 ID
 
   useEffect(() => {
     const fetchPostDetail = async () => {
@@ -69,7 +70,7 @@
     try {
       if (isLiked) {
         // 取消点赞
-        await unlikePost(postId, user.id);
+        await unlikePost(postId, user.userId);
         setIsLiked(false);
         setPostDetail((prev) => ({
           ...prev,
@@ -77,7 +78,7 @@
         }));
       } else {
         // 点赞
-        await likePost(postId, user.id);
+        await likePost(postId, user.userId);
         setIsLiked(true);
         setPostDetail((prev) => ({
           ...prev,
@@ -100,7 +101,7 @@
     try {
         if (isCollected) {
             // 取消收藏 - 使用原有的collectPost函数,传递action: "cancel"
-            await collectPost(postId, user.id, "cancel");
+            await collectPost(postId, user.userId, "cancel");
             setIsCollected(false);
             setPostDetail((prev) => ({
                 ...prev,
@@ -108,7 +109,7 @@
             }));
         } else {
             // 收藏
-            await collectPost(postId, user.id, "collect");
+            await collectPost(postId, user.userId, "collect");
             setIsCollected(true);
             setPostDetail((prev) => ({
                 ...prev,
@@ -121,40 +122,57 @@
     }
 };
 
-  // 添加评论
+// 添加评论
 const handleAddComment = async () => {
+  // 直接使用组件顶层获取的 user
+  if (!user || !user.userId) {
+    alert('请先登录后再评论');
+    return;
+  }
+
   if (!newComment.trim()) {
     alert('评论内容不能为空');
     return;
   }
 
   try {
+    // 构建评论数据
     const commentPayload = {
       content: newComment,
-      userId: user.id,
+      userId: user.userId, // 使用已获取的用户ID
       isAnonymous: false,
       com_comment_id: replyToCommentId || null,
     };
 
+    // 发送评论请求
     const commentData = await addCommentToPost(postId, commentPayload);
 
-    setComments((prev) => [
-      ...prev,
-      {
-        commentId: (commentData && commentData.commentId) || Date.now(),
-        post_id: postId,
-        userId: user.id,
-        content: newComment,
-        commentTime: new Date().toISOString(),
-        comCommentId: replyToCommentId,
-      },
-    ]);
+    // 更新评论列表
+    const newCommentItem = {
+      commentId: commentData?.commentId || Date.now(),
+      post_id: postId,
+      userId: user.userId,
+      content: newComment,
+      commentTime: new Date().toISOString(),
+      comCommentId: replyToCommentId,
+    };
 
+    setComments((prevComments) => [newCommentItem, ...prevComments]);
+
+    // 重置表单
     setNewComment('');
     setReplyToCommentId(null);
-  } catch (err) {
-    console.error('评论添加失败:', err);
-    alert('评论失败,请稍后再试');
+
+    // alert('评论成功!');
+  } catch (error) {
+    console.error('评论失败:', error);
+    
+    const errorMessage = 
+      error.response?.data?.message || 
+      error.message || 
+      '评论失败,请稍后再试';
+      
+    alert(errorMessage);
   }
 };