import React from "react"; import { Link } from "react-router-dom"; import { Label } from "@/components/ui/label"; import { Input } from "@/components/ui/input"; import { Button } from "@/components/ui/button"; import { ArrowRight, Mail, KeyRound, Eye, EyeOff, AlertTriangle, Loader2, } from "lucide-react"; interface LoginFormProps { email: string; setEmail: (email: string) => void; password: string; setPassword: (password: string) => void; showPassword: boolean; setShowPassword: (show: boolean) => void; isLoading: boolean; isSettingUpTables?: boolean; loginError: string | null; handleLogin: (e: React.FormEvent) => Promise; } const LoginForm: React.FC = ({ email, setEmail, password, setPassword, showPassword, setShowPassword, isLoading, isSettingUpTables = false, loginError, handleLogin, }) => { // CORS 또는 JSON 관련 오류인지 확인 const isCorsOrJsonError = loginError && (loginError.includes("JSON") || loginError.includes("CORS") || loginError.includes("프록시") || loginError.includes("서버 응답") || loginError.includes("네트워크") || loginError.includes("404") || loginError.includes("Not Found")); return (
setEmail(e.target.value)} className="pl-10 neuro-pressed" />
setPassword(e.target.value)} className="pl-10 neuro-pressed" />
{loginError && (

{loginError}

{isCorsOrJsonError && (
  • 설정 페이지에서 다른 CORS 프록시 유형을 시도해 보세요.
  • HTTPS URL을 사용하는 Supabase 인스턴스로 변경해 보세요.
  • 네트워크 연결 상태를 확인하세요.
)}
)}
비밀번호를 잊으셨나요?
); }; export default LoginForm;