import React from 'react';
import './MainPage.css'; 
import { Link } from 'wouter'; 
import logo from '../../assets/logo.png'; 

const MainPage = () => {
  return (
    <div className="main-page">
      {/* 顶部栏 */}
      <header className="header">
        {/* 左侧 logo 和网站名称 */}
        <div className="logo-and-name">
          {/* 确保此处没有语法错误 */}
          <img src={logo} alt="网站 logo" className="logo" />
          <span className="site-name">Echo</span>
        </div>
        {/* 右侧用户头像和消息中心 */}
        <div className="user-and-message">
          <img src="user-avatar.png" alt="用户头像" className="user-avatar" />
          <span className="message-center">消息</span>
        </div>
      </header>
      {/* 导航栏 */}
      <nav className="nav">
        <Link to="/friend-moments" className="nav-item active">好友动态</Link>
        <Link to="/forum" className="nav-item">论坛</Link>
        <Link to="/interest-groups" className="nav-item">兴趣小组</Link>
        <Link to="/seed-list" className="nav-item">种子列表</Link>
        <Link to="/publish-seed" className="nav-item">发布种子</Link>
      </nav>
      {/* 好友动态内容区域 */}
      <div className="content">
        {/* 用户动态示例，可从后端获取数据循环展示 */}
        <div className="user-post">
          <div className="user-info">
            <img src="user1-avatar.png" alt="用户头像" className="user-avatar-small" />
            <span className="username">user1</span>
          </div>
          <div className="post-content">
            <p>动态内容...</p>
          </div>
          <div className="post-actions">
            {/* <GoodTwo theme="outline" size="24" fill="#fff" /> */}
            <span className="like-count">21</span>
            {/* <Comment theme="outline" size="24" fill="#fff"/> */}
            <span className="comment-count">2</span>
          </div>
          <img src="image1.png" alt="动态图片" className="post-image" />
        </div>
      </div>
    </div>
  );
};

export default MainPage;