| // import React, { useState } from 'react'; |
| // import { useGroupStore } from '../../context/useGroupStore'; |
| // import { useUser } from '../../context/UserContext'; // ✅ 新增:引入 UserContext |
| // import CreatePostForm from './CreatePostForm'; |
| |
| // const GroupItem = ({ group }) => { |
| // const { handleJoinGroup, joinStatus } = useGroupStore(); |
| // const { user } = useUser(); // ✅ 获取 user |
| // const userId = user?.userId; // ✅ 安全获取 userId |
| // const [showCreatePost, setShowCreatePost] = useState(false); |
| |
| // return ( |
| // <div className="group-item"> |
| // <div className="group-content"> |
| // <img |
| // style={{ width: '40%', height: '40%' }} |
| // src={group.cover_image || 'https://picsum.photos/200/200'} |
| // alt={group.groupName || group.name} |
| // className="group-cover" |
| // /> |
| // <div className="group-info-right"> |
| // <h3>{group.groupName || group.name}</h3> |
| // <p style={{ color: '#BA929A' }}>{group.memberCount || 0}人加入了小组</p> |
| // <button |
| // onClick={() => handleJoinGroup(group.group_id, userId)} |
| // disabled={joinStatus[group.group_id] === '加入成功' || !userId} |
| // > |
| // {joinStatus[group.group_id] === '加入成功' ? '已加入' : userId ? '+加入小组' : '请登录'} |
| // </button> |
| |
| // {userId && joinStatus[group.group_id] === '加入成功' && ( |
| // <button onClick={() => setShowCreatePost(!showCreatePost)}> |
| // +发布帖子 |
| // </button> |
| // )} |
| // </div> |
| // </div> |
| |
| // <div className="group-description"> |
| // <p>{group.description}</p> |
| // </div> |
| // <p>分类:{group.category}</p> |
| |
| // {showCreatePost && ( |
| // <CreatePostForm |
| // groupId={group.group_id} |
| // onClose={() => setShowCreatePost(false)} |
| // /> |
| // )} |
| // </div> |
| // ); |
| // }; |
| |
| // export default GroupItem; |
| |
| |
| import React, { useState } from 'react'; |
| import { useGroupStore } from '../../context/useGroupStore'; |
| import { useUser } from '../../context/UserContext'; |
| import CreatePostForm from './CreatePostForm'; |
| |
| const GroupItem = ({ group }) => { |
| |
| console.log('group:', group); |
| const { handleJoinGroup, joinStatus } = useGroupStore(); |
| const { user } = useUser(); |
| |
| const userId = user?.userId; |
| const groupId = group.groupId; // ✅ 使用正确字段 |
| console.log('加入小组请求 - groupId:', group.group_id, 'userId:', userId); |
| |
| const [showCreatePost, setShowCreatePost] = useState(false); |
| |
| return ( |
| <div className="group-item"> |
| <div className="group-content"> |
| <img |
| style={{ width: '40%', height: '40%' }} |
| src={group.cover_image || 'https://picsum.photos/200/200'} |
| alt={group.groupName} |
| className="group-cover" |
| /> |
| <div className="group-info-right"> |
| <h3>{group.groupName}</h3> {/* ✅ 使用 groupName */} |
| <p style={{ color: '#BA929A' }}>{group.memberCount || 0}人加入了小组</p> |
| |
| <button |
| onClick={() => handleJoinGroup(groupId, userId)} |
| disabled={joinStatus[groupId] === '加入成功' || !userId} |
| > |
| |
| {joinStatus[groupId] === '加入成功' ? '已加入' : userId ? '+加入小组' : '请登录'} |
| </button> |
| |
| {userId && joinStatus[groupId] === '加入成功' && ( |
| <button onClick={() => setShowCreatePost(!showCreatePost)}> |
| +发布帖子 |
| </button> |
| )} |
| </div> |
| </div> |
| |
| <div className="group-description"> |
| <p>{group.description}</p> |
| </div> |
| <p>分类:{group.category}</p> |
| |
| {showCreatePost && ( |
| <CreatePostForm |
| groupId={groupId} |
| onClose={() => setShowCreatePost(false)} |
| /> |
| )} |
| </div> |
| ); |
| }; |
| |
| export default GroupItem; |
| |
| |
| // import React, { useState } from 'react'; |
| // import { useGroupStore } from '../../context/useGroupStore'; |
| // import { useUser } from '../../context/UserContext'; |
| // import CreatePostForm from './CreatePostForm'; |
| |
| // const GroupItem = ({ group }) => { |
| // console.log('group:', group); |
| |
| // const { handleJoinGroup, joinStatus } = useGroupStore(); |
| // const { user } = useUser(); |
| // const userId = user?.userId; // 确保使用正确的字段名(取自 localStorage 的结构) |
| // const [showCreatePost, setShowCreatePost] = useState(false); |
| |
| // return ( |
| // <div className="group-item"> |
| // <div className="group-content"> |
| // <img |
| // style={{ width: '40%', height: '40%' }} |
| // src={group.cover_image || 'https://picsum.photos/200/200'} |
| // alt={group.name} |
| // className="group-cover" |
| // /> |
| // <div className="group-info-right"> |
| // <h3>{group.name}</h3> |
| // <p style={{ color: '#BA929A' }}>{group.member_count || 0}人加入了小组</p> |
| |
| // <button |
| // onClick={() => handleJoinGroup(group.group_id, userId)} |
| // disabled={joinStatus[group.group_id] === '加入成功' || !userId} |
| // > |
| // {joinStatus[group.group_id] === '加入成功' ? '已加入' : userId ? '+加入小组' : '请登录'} |
| // </button> |
| |
| // {userId && joinStatus[group.group_id] === '加入成功' && ( |
| // <button onClick={() => setShowCreatePost(!showCreatePost)}> |
| // +发布帖子 |
| // </button> |
| // )} |
| // </div> |
| // </div> |
| |
| // <div className="group-description"> |
| // <p>{group.description}</p> |
| // </div> |
| // <p>分类:{group.category}</p> |
| |
| // {showCreatePost && ( |
| // <CreatePostForm |
| // groupId={group.group_id} |
| // onClose={() => setShowCreatePost(false)} |
| // /> |
| // )} |
| // </div> |
| // ); |
| // }; |
| |
| // export default GroupItem; |
| |