用户信息显示
This commit is contained in:
parent
67c78add30
commit
034260391d
@ -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 />
|
||||||
</>
|
</>
|
||||||
)
|
)
|
||||||
|
@ -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))
|
||||||
|
@ -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>
|
||||||
|
</>
|
||||||
|
)
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user