用户信息显示

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

View File

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