feat: 手机验证码调试
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
// src/contexts/AuthModalContext.js
|
||||
import { createContext, useContext, useState, useCallback } from 'react';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
import { useAuth } from './AuthContext';
|
||||
|
||||
const AuthModalContext = createContext();
|
||||
|
||||
@@ -19,6 +21,9 @@ export const useAuthModal = () => {
|
||||
* 管理统一的认证弹窗状态(登录/注册合并)
|
||||
*/
|
||||
export const AuthModalProvider = ({ children }) => {
|
||||
const navigate = useNavigate();
|
||||
const { isAuthenticated } = useAuth();
|
||||
|
||||
// 弹窗状态(统一的认证弹窗)
|
||||
const [isAuthModalOpen, setIsAuthModalOpen] = useState(false);
|
||||
|
||||
@@ -41,12 +46,18 @@ export const AuthModalProvider = ({ children }) => {
|
||||
|
||||
/**
|
||||
* 关闭认证弹窗
|
||||
* 如果用户未登录,跳转到首页
|
||||
*/
|
||||
const closeModal = useCallback(() => {
|
||||
setIsAuthModalOpen(false);
|
||||
setRedirectUrl(null);
|
||||
setOnSuccessCallback(null);
|
||||
}, []);
|
||||
|
||||
// ⭐ 如果用户关闭弹窗时仍未登录,跳转到首页
|
||||
if (!isAuthenticated) {
|
||||
navigate('/home');
|
||||
}
|
||||
}, [isAuthenticated, navigate]);
|
||||
|
||||
/**
|
||||
* 登录/注册成功处理
|
||||
@@ -62,17 +73,12 @@ export const AuthModalProvider = ({ children }) => {
|
||||
}
|
||||
}
|
||||
|
||||
// 如果有重定向URL,则跳转
|
||||
if (redirectUrl) {
|
||||
// 使用 window.location.href 确保完整刷新页面状态
|
||||
setTimeout(() => {
|
||||
window.location.href = redirectUrl;
|
||||
}, 500); // 延迟500ms,让用户看到成功提示
|
||||
}
|
||||
|
||||
// 关闭弹窗
|
||||
closeModal();
|
||||
}, [onSuccessCallback, redirectUrl, closeModal]);
|
||||
// ⭐ 登录成功后,只关闭弹窗,留在当前页面(不跳转)
|
||||
// 移除了原有的 redirectUrl 跳转逻辑
|
||||
setIsAuthModalOpen(false);
|
||||
setRedirectUrl(null);
|
||||
setOnSuccessCallback(null);
|
||||
}, [onSuccessCallback]);
|
||||
|
||||
/**
|
||||
* 提供给子组件的上下文值
|
||||
|
||||
Reference in New Issue
Block a user