用户信息显示

This commit is contained in:
xmdhs 2023-09-26 23:42:13 +08:00
parent 67c78add30
commit 034260391d
No known key found for this signature in database
GPG Key ID: E809D6D43DEFCC95
3 changed files with 28 additions and 6 deletions

View File

@ -1,7 +1,8 @@
import { Routes, Route, Outlet, createBrowserRouter, RouterProvider } from "react-router-dom"; import { Routes, Route, Outlet, createBrowserRouter, RouterProvider } from "react-router-dom";
import { ScrollRestoration } from "react-router-dom";
import Login from '@/views/Login' import Login from '@/views/Login'
import Register from '@/views/Register' import Register from '@/views/Register'
import { ScrollRestoration } from "react-router-dom"; import User from '@/views/User'
const router = createBrowserRouter([ const router = createBrowserRouter([
{ path: "*", Component: Root }, { path: "*", Component: Root },
@ -11,7 +12,10 @@ function Root() {
return ( return (
<> <>
<Routes> <Routes>
<Route path="/" element={<Layout />}></Route> <Route path="/" element={<Layout />}>
<Route path="/user" element={<User />} />
</Route>
<Route path="/login" element={<Login />} /> <Route path="/login" element={<Login />} />
<Route path="/register" element={<Register />} /> <Route path="/register" element={<Register />} />
</Routes> </Routes>
@ -33,6 +37,7 @@ export function PageRoute() {
function Layout() { function Layout() {
return ( return (
<> <>
<p></p>
<Outlet /> <Outlet />
</> </>
) )

View File

@ -14,7 +14,7 @@ import Alert from '@mui/material/Alert';
import { useSetAtom } from 'jotai'; import { useSetAtom } from 'jotai';
import { token, username } from '@/store/store' import { token, username } from '@/store/store'
import { login } from '@/apis/apis' import { login } from '@/apis/apis'
import { Link as RouterLink } from "react-router-dom"; import { Link as RouterLink, useNavigate } from "react-router-dom";
import Loading from '@/components/Loading' import Loading from '@/components/Loading'
import CheckInput, { refType } from '@/components/CheckInput' import CheckInput, { refType } from '@/components/CheckInput'
@ -26,11 +26,10 @@ export default function SignIn() {
const setToken = useSetAtom(token) const setToken = useSetAtom(token)
const setUsername = useSetAtom(username) const setUsername = useSetAtom(username)
const checkList = React.useRef<Map<string, refType>>(new Map<string, refType>()) const checkList = React.useRef<Map<string, refType>>(new Map<string, refType>())
const navigate = useNavigate();
const handleSubmit = (event: React.FormEvent<HTMLFormElement>) => { const handleSubmit = (event: React.FormEvent<HTMLFormElement>) => {
event.preventDefault(); event.preventDefault();
if (loading) return
setLoading(true)
const data = new FormData(event.currentTarget); const data = new FormData(event.currentTarget);
const postData = { const postData = {
@ -38,14 +37,17 @@ export default function SignIn() {
password: data.get('password')?.toString(), password: data.get('password')?.toString(),
} }
if (!Array.from(checkList.current.values()).map(v => v.verify()).reduce((p, v) => (p == true) && (v == true))) { if (!Array.from(checkList.current.values()).map(v => v.verify()).reduce((p, v) => (p == true) && (v == true))) {
setLoading(false)
return return
} }
if (loading) return
setLoading(true)
login(postData.email!, postData.password ?? ""). login(postData.email!, postData.password ?? "").
then(v => { then(v => {
if (!v) return if (!v) return
setToken(v.accessToken) setToken(v.accessToken)
setUsername(v.selectedProfile.name) setUsername(v.selectedProfile.name)
navigate("/user")
}). }).
catch(v => [setErr(String(v)), console.warn(v)]). catch(v => [setErr(String(v)), console.warn(v)]).
finally(() => setLoading(false)) finally(() => setLoading(false))

View File

@ -0,0 +1,15 @@
import { token, username } from "@/store/store"
import { useAtomValue } from "jotai"
export default function User() {
const nowToken = useAtomValue(token)
const nowUsername = useAtomValue(username)
return (
<>
<p>: {nowUsername}</p>
<p>token: {nowToken} </p>
</>
)
}