refactor: 前端登录/权限/界面状态迁移至 zustand
This commit is contained in:
@@ -4,14 +4,18 @@ import { Form, Input, Button, Card, Typography } from 'antd';
|
||||
import { UserOutlined, LockOutlined } from '@ant-design/icons';
|
||||
import api from '../../api';
|
||||
import { message } from '../../ui/app-message';
|
||||
import { clearPermissions, writePermissions } from '../../auth/permission-store';
|
||||
import { findRoleAwareLandingPath } from '../../auth/menu-policy';
|
||||
import { usePermissionStore } from '../../store/permission/permissionStore';
|
||||
import { useUserStore } from '../../store/user/userStore';
|
||||
|
||||
const { Title } = Typography;
|
||||
|
||||
const LoginPage: React.FC = () => {
|
||||
const [loading, setLoading] = useState(false);
|
||||
const navigate = useNavigate();
|
||||
const setSession = useUserStore((state) => state.setSession);
|
||||
const clearPermissions = usePermissionStore((state) => state.clearPermissions);
|
||||
const writePermissions = usePermissionStore((state) => state.writePermissions);
|
||||
|
||||
const onFinish = useCallback(
|
||||
async (values: any) => {
|
||||
@@ -19,8 +23,7 @@ const LoginPage: React.FC = () => {
|
||||
setLoading(true);
|
||||
try {
|
||||
const res: any = await api.post('/auth/login', values);
|
||||
localStorage.setItem('token', res.access_token);
|
||||
localStorage.setItem('user', JSON.stringify(res.user));
|
||||
setSession(res.access_token, res.user);
|
||||
const permissions = res.user.permissions || [];
|
||||
writePermissions(permissions);
|
||||
message.success('登录成功');
|
||||
@@ -33,7 +36,7 @@ const LoginPage: React.FC = () => {
|
||||
setLoading(false);
|
||||
}
|
||||
},
|
||||
[navigate],
|
||||
[clearPermissions, navigate, setSession, writePermissions],
|
||||
);
|
||||
|
||||
return (
|
||||
|
||||
Reference in New Issue
Block a user