bug修复
This commit is contained in:
+13
-7
@@ -11,13 +11,15 @@ import useStore from './store/useStore';
|
||||
/**
|
||||
* 路由守卫组件
|
||||
* 根据登录状态和注册完成状态进行路由重定向
|
||||
* - requireAuth: 需要登录才能访问
|
||||
* - requireOnboarding: 需要完成入站流程才能访问
|
||||
*/
|
||||
const ProtectedRoute = ({ children, requireAuth = false, requireOnboarding = false }) => {
|
||||
const { isLoggedIn, registrationData } = useStore();
|
||||
const navigate = useNavigate();
|
||||
|
||||
// 检查是否完成入站流程
|
||||
const hasCompletedOnboarding = registrationData.nickname && registrationData.future?.vision;
|
||||
// 检查是否完成入站流程(有昵称和未来愿景即视为已完成)
|
||||
const hasCompletedOnboarding = !!(registrationData.nickname && registrationData.future?.vision);
|
||||
|
||||
useEffect(() => {
|
||||
if (requireAuth && !isLoggedIn) {
|
||||
@@ -65,8 +67,8 @@ const AnimatedRoutes = () => {
|
||||
const location = useLocation();
|
||||
const { isLoggedIn, registrationData } = useStore();
|
||||
|
||||
// 检查是否完成入站流程
|
||||
const hasCompletedOnboarding = registrationData.nickname && registrationData.future?.vision;
|
||||
// 检查是否完成入站流程(有昵称和未来愿景即视为已完成)
|
||||
const hasCompletedOnboarding = !!(registrationData.nickname && registrationData.future?.vision);
|
||||
|
||||
return (
|
||||
<AnimatePresence mode="wait">
|
||||
@@ -89,15 +91,19 @@ const AnimatedRoutes = () => {
|
||||
}
|
||||
/>
|
||||
|
||||
{/* 入站流程页 */}
|
||||
{/* 入站流程页 - 已完成入站的用户直接跳转到首页 */}
|
||||
<Route
|
||||
path="/onboarding"
|
||||
element={
|
||||
<ProtectedRoute requireAuth>
|
||||
!isLoggedIn ? (
|
||||
<Navigate to="/" replace />
|
||||
) : hasCompletedOnboarding ? (
|
||||
<Navigate to="/dashboard" replace />
|
||||
) : (
|
||||
<PageTransition>
|
||||
<OnboardingPage />
|
||||
</PageTransition>
|
||||
</ProtectedRoute>
|
||||
)
|
||||
}
|
||||
/>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user