From 7b4c4be7bf95972252c816eee34918f9a9bbe713 Mon Sep 17 00:00:00 2001 From: zdl <3489966805@qq.com> Date: Wed, 26 Nov 2025 11:43:16 +0800 Subject: [PATCH] =?UTF-8?q?pref:=E7=82=B9=E5=87=BB=E6=89=8B=E6=9C=BA?= =?UTF-8?q?=E7=99=BB=E9=99=86=E5=90=8E=E6=97=A5=E5=BF=97=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Auth/AuthFormContent.js | 10 ---------- src/hooks/useSubscription.js | 14 ++++++++------ src/mocks/data/users.js | 1 - src/mocks/handlers/account.js | 8 -------- src/mocks/handlers/auth.js | 9 --------- 5 files changed, 8 insertions(+), 34 deletions(-) diff --git a/src/components/Auth/AuthFormContent.js b/src/components/Auth/AuthFormContent.js index bbc7768c..1dad5095 100644 --- a/src/components/Auth/AuthFormContent.js +++ b/src/components/Auth/AuthFormContent.js @@ -322,16 +322,6 @@ export default function AuthFormContent() { } if (response.ok && data.success) { - // ⚡ Mock 模式:先在前端侧写入 localStorage,确保时序正确 - if (process.env.REACT_APP_ENABLE_MOCK === 'true' && data.user) { - setCurrentUser(data.user); - logger.debug('AuthFormContent', '前端侧设置当前用户(Mock模式)', { - userId: data.user?.id, - phone: data.user?.phone, - mockMode: true - }); - } - // 更新session await checkSession(); diff --git a/src/hooks/useSubscription.js b/src/hooks/useSubscription.js index e7a86dc1..2afe95fe 100644 --- a/src/hooks/useSubscription.js +++ b/src/hooks/useSubscription.js @@ -69,18 +69,20 @@ export const useSubscription = () => { const error = useSelector(selectSubscriptionError); const isSubscriptionModalOpen = useSelector(selectSubscriptionModalOpen); - // 自动加载订阅信息 + // 自动加载订阅信息(带防重复逻辑) useEffect(() => { if (isAuthenticated && user) { - // 用户已登录,加载订阅信息 - dispatch(fetchSubscriptionInfo()); - logger.debug('useSubscription', '加载订阅信息', { userId: user.id }); + // 只在没有数据且未在加载时才请求,避免多个组件重复调用 + if (!subscriptionInfo.type && !loading) { + dispatch(fetchSubscriptionInfo()); + logger.debug('useSubscription', '加载订阅信息', { userId: user.id }); + } } else { // 用户未登录,重置为免费版 dispatch(resetToFree()); - logger.debug('useSubscription', '用户未登录,重置为免费版'); } - }, [isAuthenticated, user, dispatch]); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [isAuthenticated, user?.id, dispatch]); // 获取订阅级别数值 const getSubscriptionLevel = (type = null) => { diff --git a/src/mocks/data/users.js b/src/mocks/data/users.js index 7a481204..b5593172 100644 --- a/src/mocks/data/users.js +++ b/src/mocks/data/users.js @@ -102,7 +102,6 @@ export function setCurrentUser(user) { subscription_days_left: user.subscription_days_left || 0 }; localStorage.setItem('mock_current_user', JSON.stringify(normalizedUser)); - console.log('[Mock State] 设置当前登录用户:', normalizedUser); } } diff --git a/src/mocks/handlers/account.js b/src/mocks/handlers/account.js index 37905800..ad388b51 100644 --- a/src/mocks/handlers/account.js +++ b/src/mocks/handlers/account.js @@ -613,14 +613,6 @@ export const accountHandlers = [ end_date: currentUser.subscription_end_date || null }; - console.log('[Mock API] 获取当前订阅详情:', { - user_id: currentUser.id, - phone: currentUser.phone, - subscription_type: userSubscriptionType, - subscription_status: subscriptionDetails.status, - days_left: subscriptionDetails.days_left - }); - return HttpResponse.json({ success: true, data: subscriptionDetails diff --git a/src/mocks/handlers/auth.js b/src/mocks/handlers/auth.js index e1f36005..f511986f 100644 --- a/src/mocks/handlers/auth.js +++ b/src/mocks/handlers/auth.js @@ -127,8 +127,6 @@ export const authHandlers = [ const body = await request.json(); const { credential, verification_code, login_type } = body; - console.log('[Mock] 验证码登录:', { credential, verification_code, login_type }); - // 验证验证码 const storedCode = mockVerificationCodes.get(credential); if (!storedCode) { @@ -180,11 +178,8 @@ export const authHandlers = [ subscription_days_left: 0 }; mockUsers[credential] = user; - console.log('[Mock] 创建新用户:', user); } - console.log('[Mock] 登录成功:', user); - // 设置当前登录用户 setCurrentUser(user); @@ -362,8 +357,6 @@ export const authHandlers = [ // 获取当前登录用户 const currentUser = getCurrentUser(); - console.log('[Mock] 检查 Session:', currentUser); - if (currentUser) { return HttpResponse.json({ success: true, @@ -386,8 +379,6 @@ export const authHandlers = [ // 获取当前登录用户 const currentUser = getCurrentUser(); - console.log('[Mock] 检查 Session (旧端点):', currentUser); - if (currentUser) { return HttpResponse.json({ success: true,