import React from 'react';
import './MainPage.css'; // 可创建对应样式文件来完善样式
import { Link } from 'wouter'; // Use wouter's Link component
// import '@icon-park/react/styles/index.css';
// import { GoodTwo, Comment } from '@icon-park/react'; 

const MainPage = () => {
  return (
    <div className="main-page">
      {/* 顶部栏 */}
      <header className="header">
        {/* 左侧logo和网站名称 */}
        <div className="logo-and-name">
          <img src="logo.png" 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;
