import React from 'react';
import { Route, useLocation } from 'wouter';
import { UserProvider, useUser } from './context/UserContext';

import AuthPage from './pages/AuthPage/AuthPage';
import HomePage from './pages/HomePage';
import FriendMoments from './pages/FriendMoments/FriendMoments';
import ForumPage from './pages/Forum/posts-main/ForumPage';
import SeedList from './pages/SeedList/SeedList';
import PostDetailPage from './pages/Forum/posts-detail/PostDetailPage';
import { GroupProvider } from './context/useGroupStore';
import PublishSeed from './pages/PublishSeed/PublishSeed';
import SeedDetail from './pages/SeedList/SeedDetail/SeedDetail';
import InterestGroup from './pages/InterestGroup/InterestGroup';
import UserProfile from './pages/UserCenter/UserProfile';
import CreatePostPage from './pages/Forum/posts-create/CreatePostPage';
import MessagePage from './pages/MessagePage/MessagePage';
import CreateMoment from './pages/FriendMoments/CreateMoment';
import LevelPage from './pages/LevelPage/LevelPage';
import NewbieTasks from './pages/UserCenter/NewbieTasks';
import UserDynamics from './pages/UserCenter/UserDynamics';
import UserFriends from './pages/UserCenter/UserFriends';
import UserCollect from './pages/UserCenter/UserCollect';
import UserInvite from './pages/UserCenter/UserInvite';
import UserInfo from './pages/UserInfo/UserInfo';
import UserLayout from './pages/UserCenter/UserLayout';

function RedirectToAuth() {
  if (typeof window !== 'undefined') {
    window.location.replace('/auth');
  }
  return null;
}

// 私有路由保护组件
function PrivateRoute({ component: Component }) {
  const [location, setLocation] = useLocation();
  const { user, loading } = useUser();

  if (loading) {
    return <div>加载中...</div>;
  }

  if (!user) {
    setLocation('/auth');
    return null;
  }

  return <Component />;
}

function App() {
  return (
    <UserProvider>
      <GroupProvider>
        <>
          {/* 公开路由 */}
          <Route path="/auth" component={AuthPage} />

          {/* 根路径跳转到登录页 */}
          <Route path="/" component={() => <RedirectToAuth />} />

          {/* 私有路由用 PrivateRoute 包裹 */}
          <Route path="/friend-moments" component={() => <PrivateRoute component={FriendMoments} />} />
          <Route path="/friend-moments/create" component={() => <PrivateRoute component={CreateMoment} />} />
          <Route path="/forum" component={() => <PrivateRoute component={ForumPage} />} />
          <Route path="/forum/post/:postId" component={({ postId }) => <PrivateRoute component={() => <PostDetailPage postId={postId} />} />} />
          <Route path="/forum/create-post" component={() => <PrivateRoute component={CreatePostPage} />} />
          <Route path="/seed-list" component={() => <PrivateRoute component={SeedList} />} />
          <Route path="/publish-seed" component={() => <PrivateRoute component={PublishSeed} />} />
          <Route path="/seed/:id" component={({ id }) => <PrivateRoute component={() => <SeedDetail id={id} />} />} />
          <Route path="/interest-groups" component={() => <PrivateRoute component={InterestGroup} />} />
          <Route path="/messages" component={() => <PrivateRoute component={MessagePage} />} />
          <Route path="/level" component={() => <PrivateRoute component={LevelPage} />} />
          <Route path="/information/:userId" component={({ userId }) => <PrivateRoute component={() => <UserInfo userId={userId} />} />} />

          {/* 用户中心路由 */}
          <Route path="/user/profile" component={() => (
            <PrivateRoute component={() => <UserLayout><UserProfile /></UserLayout>} />
          )} />
          <Route path="/user/newbie-tasks" component={() => (
            <PrivateRoute component={() => <UserLayout><NewbieTasks /></UserLayout>} />
          )} />
          <Route path="/user/dynamics" component={() => (
            <PrivateRoute component={() => <UserLayout><UserDynamics /></UserLayout>} />
          )} />
          <Route path="/user/friends" component={() => (
            <PrivateRoute component={() => <UserLayout><UserFriends /></UserLayout>} />
          )} />
          <Route path="/user/collections" component={() => (
            <PrivateRoute component={() => <UserLayout><UserCollect /></UserLayout>} />
          )} />
          <Route path="/user/invite" component={() => (
            <PrivateRoute component={() => <UserLayout><UserInvite /></UserLayout>} />
          )} />
        </>
      </GroupProvider>
    </UserProvider>
  );
}

export default App;


// // export default App;

// import { Route } from 'wouter';
// import { Redirect } from 'wouter';
// import AuthPage from './pages/AuthPage/AuthPage';
// import HomePage from './pages/HomePage';
// import FriendMoments from './pages/FriendMoments/FriendMoments';
// import ForumPage from './pages/Forum/posts-main/ForumPage';
// import SeedList from './pages/SeedList/SeedList';
// import PostDetailPage from './pages/Forum/posts-detail/PostDetailPage';
// import { UserProvider } from './context/UserContext';
// import { GroupProvider } from './context/useGroupStore';
// import PublishSeed from './pages/PublishSeed/PublishSeed';
// import SeedDetail from './pages/SeedList/SeedDetail/SeedDetail';
// import InterestGroup from './pages/InterestGroup/InterestGroup';
// import UserProfile from './pages/UserCenter/UserProfile';
// import CreatePostPage from './pages/Forum/posts-create/CreatePostPage';
// import MessagePage from './pages/MessagePage/MessagePage';
// import CreateMoment from './pages/FriendMoments/CreateMoment';
// // import PromotionsPage from './pages/PromotionsPage/PromotionsPage';
// import LevelPage from './pages/LevelPage/LevelPage';
// import NewbieTasks from './pages/UserCenter/NewbieTasks';
// import UserDynamics from './pages/UserCenter/UserDynamics';
// import UserFriends from './pages/UserCenter/UserFriends';
// import UserCollect from './pages/UserCenter/UserCollect';
// import UserInvite from './pages/UserCenter/UserInvite';
// import UserInfo from './pages/UserInfo/UserInfo';
// import UserLayout from './pages/UserCenter/UserLayout';

// function RedirectToAuth() {
//   if (typeof window !== 'undefined') {
//     window.location.replace('/auth');
//   }
//   return null;
// }

// function App() {
//   return (
//     <UserProvider>
//       <GroupProvider>
//         <>
//           <Route path="/" component={RedirectToAuth} />
//           <Route path="/auth" component={AuthPage} />
//           <Route path="/friend-moments" component={FriendMoments} />
//           <Route path="/friend-moments/create" component={CreateMoment} />
//           <Route path="/forum" component={ForumPage} />
//           <Route path="/forum/post/:postId" component={PostDetailPage} />
//           <Route path="/forum/create-post" component={CreatePostPage} />
//           <Route path="/seed-list" component={SeedList} />
//           <Route path="/publish-seed" component={PublishSeed} />
//           {/* <Route path="/publish-seed" component={SimpleUploader} /> */}
//           <Route path="/seed/:id" component={SeedDetail} />
//           <Route path="/interest-groups" component={InterestGroup} />
//           <Route path="/messages" component={MessagePage} />
//           {/* <Route path="/promotions" component={PromotionsPage} /> */}
//           <Route path="/level" component={LevelPage} />
//           <Route path="/information/:userId" component={UserInfo} />


//           {/* 用户中心嵌套路由模拟 */}
//           <Route path="/user/profile" component={() => (
//             <UserLayout><UserProfile /></UserLayout>
//           )} />
//           <Route path="/user/newbie-tasks" component={() => (
//             <UserLayout><NewbieTasks /></UserLayout>
//           )} />
//           <Route path="/user/dynamics" component={() => (
//             <UserLayout><UserDynamics /></UserLayout>
//           )} />
//           <Route path="/user/friends" component={() => (
//             <UserLayout><UserFriends /></UserLayout>
//           )} />
//           <Route path="/user/collections" component={() => (
//             <UserLayout><UserCollect /></UserLayout>
//           )} />
//           <Route path="/user/invite" component={() => (
//             <UserLayout><UserInvite /></UserLayout>
//           )} />
//         </>
//       </GroupProvider>
//     </UserProvider>
//   );
// }

// export default App;
