import { Button, Divider, Form, Input, Typography } from 'antd'; import { LockOutlined, UserOutlined } from '@ant-design/icons'; import { useNavigate } from 'react-router-dom'; import { authApi } from '@/api/auth'; import { useAuthStore } from '@/stores/auth'; import { COLOR_PRIMARY, GRAY, SHADOW } from '@/theme/tokens'; const { Title, Text } = Typography; export default function LoginPage() { const navigate = useNavigate(); const setAuth = useAuthStore((s) => s.setAuth); const onFinish = async (values: { loginId: string; password: string }) => { try { const resp = await authApi.login(values); localStorage.setItem('accessToken', resp.accessToken); if (resp.refreshToken) localStorage.setItem('refreshToken', resp.refreshToken); setAuth({ userId: resp.userId, loginId: resp.loginId, userName: resp.userName, roles: resp.roles, }); navigate('/'); } catch { // 인터셉터에서 메시지 처리 } }; return (