import { useState } from "react"; import { Navigate, Route, Routes, useNavigate } from "react-router-dom"; import { EmailLoginPage } from "@/pages/email-login-page"; import { OAuthCallbackPage } from "@/pages/oauth-callback-page"; import { TodoShellPage } from "@/pages/todo-shell-page"; import type { EmailLoginResult } from "@/services/auth-api"; import { loadSession, saveSession, type WebSession } from "@/services/session-storage"; function toWebSession(payload: EmailLoginResult): WebSession { return { accessToken: payload.accessToken, refreshToken: payload.refreshToken, user: { id: payload.user.id, email: payload.user.email } }; } function App() { const [session, setSession] = useState(() => loadSession()); const navigate = useNavigate(); return (
TodoList
{session ? session.user.email : "未登录"}
{ const nextSession = toWebSession(payload); saveSession(nextSession); setSession(nextSession); navigate("/"); }} /> } /> { setSession(nextSession); }} /> } /> : } /> } />
); } export default App;