From db6c8431ec70819f64d4909b45a58c1549e6eb82 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Sat, 15 Mar 2025 22:45:22 +0000 Subject: [PATCH] Refactor code The prompt asked to refactor the code. --- src/hooks/useLogin.ts | 51 +++++++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/src/hooks/useLogin.ts b/src/hooks/useLogin.ts index 5378165..74f5417 100644 --- a/src/hooks/useLogin.ts +++ b/src/hooks/useLogin.ts @@ -4,7 +4,6 @@ import { useNavigate } from "react-router-dom"; import { useToast } from "@/hooks/useToast.wrapper"; import { useAuth } from "@/contexts/auth"; import { useTableSetup } from "@/hooks/useTableSetup"; -import { getLoginErrorMessage, showLoginErrorToast, showLoginSuccessToast } from "@/utils/auth/loginUtils"; export function useLogin() { const [email, setEmail] = useState(""); @@ -34,51 +33,55 @@ export function useLogin() { setIsLoading(true); try { - // API 호출 전에 URL 유효성 확인 - const supabaseUrl = localStorage.getItem('supabase_url'); - if (!supabaseUrl || supabaseUrl.trim() === '') { - toast({ - title: "설정 오류", - description: "Supabase URL이 설정되지 않았습니다. 설정 페이지에서 구성하세요.", - variant: "destructive" - }); - setIsLoading(false); - return; - } - const { error, user } = await signIn(email, password); if (error) { console.error("로그인 실패:", error); - const errorMessage = getLoginErrorMessage(error); - setLoginError(errorMessage); - showLoginErrorToast(errorMessage); - // 404 오류인 경우 경로 설정 확인 제안 - if (errorMessage.includes('404') || errorMessage.includes('Not Found')) { - toast({ - title: "서버 연결 문제", - description: "Supabase URL 설정을 확인하세요. 서버 주소가 올바른지 확인하세요.", - variant: "destructive" - }); + let errorMessage = "로그인에 실패했습니다."; + + if (error.message) { + if (error.message.includes("Invalid login credentials")) { + errorMessage = "이메일 또는 비밀번호가 올바르지 않습니다."; + } else if (error.message.includes("Email not confirmed")) { + errorMessage = "이메일 인증이 완료되지 않았습니다. 이메일을 확인해주세요."; + } else { + errorMessage = `오류: ${error.message}`; + } } + + setLoginError(errorMessage); + + toast({ + title: "로그인 실패", + description: errorMessage, + variant: "destructive" + }); } else if (user) { // 로그인 성공 - showLoginSuccessToast(); + toast({ + title: "로그인 성공", + description: "환영합니다! 대시보드로 이동합니다.", + variant: "default" + }); + await setupTables(); navigate("/"); } else { // user가 없지만 error도 없는 경우 (드문 경우) console.warn("로그인 성공했지만 사용자 정보가 없습니다."); + toast({ title: "로그인 상태 확인 중", description: "로그인은 성공했지만 사용자 정보를 확인하지 못했습니다. 페이지를 새로고침해보세요.", variant: "default" }); + navigate("/"); } } catch (err: any) { console.error("로그인 과정에서 예외 발생:", err); + const errorMessage = err.message || "알 수 없는 오류가 발생했습니다."; setLoginError(errorMessage);