diff --git a/pages/login/index.tsx b/pages/login/index.tsx index 5eec889..477bb21 100644 --- a/pages/login/index.tsx +++ b/pages/login/index.tsx @@ -7,7 +7,7 @@ import InputField from '@/components/Input'; import SnackBar from '@/components/SnackBar'; import { AuthAPI } from '@/services/api/auth'; -function Login(): React.ReactElement { +export default function Login() { const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [isSubmitting, setIsSubmitting] = useState(false); @@ -39,11 +39,12 @@ function Login(): React.ReactElement { const isFormValid = validFields.email && validFields.password; - const handleSubmit = async (e: React.FormEvent) => { + const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); if (isSubmitting || !isFormValid) return; setIsSubmitting(true); + try { const response = (await AuthAPI.signin({ email, @@ -55,10 +56,10 @@ function Login(): React.ReactElement { setSnackbarSeverity('success'); setSnackbarOpen(true); - // 3초 후 메인 페이지로 이동 + // 페이지 이동 전까지는 버튼을 비활성화 상태로 유지 setTimeout(() => { router.push('/'); - }, 3000); + }, 1000); } catch (error) { if (error instanceof Error) { setSnackbarMessage(error.message); @@ -69,7 +70,7 @@ function Login(): React.ReactElement { setSnackbarSeverity('fail'); setSnackbarOpen(true); } - } finally { + // 에러가 발생한 경우에만 isSubmitting을 false로 변경 setIsSubmitting(false); } }; @@ -101,7 +102,7 @@ function Login(): React.ReactElement { /> - - - + + + + + + )} { + try { + const res = await instance.get('/users/me'); + return res.data.profile; + } catch (error) { + handleApiError(error); + } + }, }; // 위키 목록 페이지 요청 파라미터 타입