From ac76db09a213d98c3ce1ffcd3d568ac56b6a3f39 Mon Sep 17 00:00:00 2001 From: zdl <3489966805@qq.com> Date: Wed, 24 Dec 2025 11:06:30 +0800 Subject: [PATCH] =?UTF-8?q?feat(HomePage):=20=E5=B7=B2=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E8=AE=BF=E9=97=AE=E9=A6=96=E9=A1=B5=E5=B1=95?= =?UTF-8?q?=E7=A4=BA=E4=B8=AA=E4=BA=BA=E4=B8=AD=E5=BF=83=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - HomePage: 添加条件渲染,已登录时展示 Center 组件 - 重构 Center 目录结构,合并 Center.tsx 到 index.tsx - 重命名 CenterDashboard 为 Center(lazy-components, homeRoutes) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- src/routes/homeRoutes.js | 2 +- src/routes/lazy-components.js | 4 ++-- src/views/Center/index.js | 4 ---- src/views/Center/{Center.tsx => index.tsx} | 6 +++--- src/views/Home/HomePage.tsx | 14 +++++++++++++- 5 files changed, 19 insertions(+), 11 deletions(-) delete mode 100644 src/views/Center/index.js rename src/views/Center/{Center.tsx => index.tsx} (92%) diff --git a/src/routes/homeRoutes.js b/src/routes/homeRoutes.js index 5ad2ed5c..04918aa3 100644 --- a/src/routes/homeRoutes.js +++ b/src/routes/homeRoutes.js @@ -28,7 +28,7 @@ export const homeRoutes = [ // 个人中心 - /home/center { path: 'center', - component: lazyComponents.CenterDashboard, + component: lazyComponents.Center, protection: PROTECTION_MODES.MODAL, meta: { title: '个人中心', diff --git a/src/routes/lazy-components.js b/src/routes/lazy-components.js index b383e89a..664e464b 100644 --- a/src/routes/lazy-components.js +++ b/src/routes/lazy-components.js @@ -11,7 +11,7 @@ export const lazyComponents = { // Home 模块 // ⚡ 直接引用 HomePage,无需中间层(静态页面不需要骨架屏) HomePage: React.lazy(() => import('@views/Home/HomePage')), - CenterDashboard: React.lazy(() => import('@views/Center')), + Center: React.lazy(() => import('@views/Center')), ProfilePage: React.lazy(() => import('@views/Profile/ProfilePage')), // 价值论坛 - 我的积分页面 ForumMyPoints: React.lazy(() => import('@views/Profile')), @@ -56,7 +56,7 @@ export const lazyComponents = { */ export const { HomePage, - CenterDashboard, + Center, ProfilePage, ForumMyPoints, SettingsPage, diff --git a/src/views/Center/index.js b/src/views/Center/index.js deleted file mode 100644 index 37dca6a2..00000000 --- a/src/views/Center/index.js +++ /dev/null @@ -1,4 +0,0 @@ -// src/views/Center/index.js -// 入口文件,导出 Center 组件 - -export { default } from './Center'; diff --git a/src/views/Center/Center.tsx b/src/views/Center/index.tsx similarity index 92% rename from src/views/Center/Center.tsx rename to src/views/Center/index.tsx index 89f390c9..d5809feb 100644 --- a/src/views/Center/Center.tsx +++ b/src/views/Center/index.tsx @@ -13,12 +13,12 @@ import ForumCenter from '@views/Profile/components/ForumCenter'; import { THEME } from '@views/Profile/components/MarketDashboard/constants'; /** - * CenterDashboard 组件 + * Center 组件 * 个人中心仪表板主页面 * * 注意:右侧 WatchSidebar 已移至全局 GlobalSidebar(在 MainLayout 中渲染) */ -const CenterDashboard: React.FC = () => { +const Center: React.FC = () => { return ( @@ -42,4 +42,4 @@ const CenterDashboard: React.FC = () => { ); }; -export default CenterDashboard; +export default Center; diff --git a/src/views/Home/HomePage.tsx b/src/views/Home/HomePage.tsx index 3fb27870..20260d3d 100644 --- a/src/views/Home/HomePage.tsx +++ b/src/views/Home/HomePage.tsx @@ -16,6 +16,7 @@ import { FeaturedFeatureCard } from './components/FeaturedFeatureCard'; import { FeatureCard } from './components/FeatureCard'; import MiniProgramLauncher from '@/components/MiniProgramLauncher'; import { isMobileDevice } from '@/components/MiniProgramLauncher/hooks/useWechatEnvironment'; +import Center from '@views/Center'; import '@/styles/home-animations.css'; /** @@ -23,7 +24,7 @@ import '@/styles/home-animations.css'; * 展示平台核心功能,引导用户探索各个功能模块 */ const HomePage: React.FC = () => { - const { user, isAuthenticated } = useAuth(); + const { user, isAuthenticated, isLoading } = useAuth(); const navigate = useNavigate(); const { track } = usePostHogTrack(); @@ -83,6 +84,17 @@ const HomePage: React.FC = () => { // 移动端判断(用于显示小程序入口) const isMobile = isMobileDevice(); + // 等待认证状态确认(避免闪烁) + if (isLoading) { + return null; + } + + // 已登录直接渲染个人中心 + if (isAuthenticated && user) { + return
; + } + + // 未登录渲染首页内容 return ( {/* Hero Section - 深色科技风格,自适应容器高度 */}